ci: replace CircleCI with GitHub Actions - #20
Merged
Conversation
Cleans up go.mod ahead of major version release: echo v4 migration (#12) was the breaking change that never got tagged. go mod tidy drops stale direct deps now unused since the v3->v4 switch.
Drops .circleci/config.yml (pinned to golang:1.15.0, long stale). Adds two workflows: - ci.yml: test, lint (golangci-lint-action), build - runs on every push - release-please.yml: on push to main, opens/updates a release PR from conventional commits and tags + creates a GitHub release on merge Requires commits on main to follow conventional-commit format (feat:/fix:/chore:/etc) for release-please to compute the next version.
File and job name were named after the tool (release-please), not what the workflow does. Rename matches the org's other split (ci.yml + release.yml on nomad-autoscaler-cloudwatch-apm).
Contributor
Author
|
@wryan97 this is ready |
|
This is still malformed, please read over the github action in its entirety |
push-only trigger never fires for fork PRs on this public repo, so the required "Test, Lint, and Build" check never appears and those PRs stay unmergeable forever against branch protection.
|
@wernermorgenstern is this release action used anywhere else? I don't recognize it. |
Switches both workflows from ubuntu-latest to the Lob self-hosted runner pool, matching house convention for GitHub Actions CI.
release-please pulls in a third-party action with no Lob provenance. Lob already has a house release pattern in lob/github-actions' auto-tag action, used by logger-go and metrics-go: workflow_dispatch with patch/minor/major, tag + GitHub release via the API. sentry-echo is public with zero shared org secrets, so the vendored checkout of lob/github-actions (which needs PRIVATE_GITHUB_ACTION_TOKEN) isn't available here. Inlines the same tag+release logic directly, using only the default GITHUB_TOKEN - same approach pdffonts uses for its public-repo release flow.
…thub-actions-migration
2 tasks
wryan97
previously approved these changes
Aug 12, 2026
lob-ci-queued-builds matcher config uses exactMatch:true against ["linux","lob-runner","self-hosted","x64"] (lowercase). "Linux" in runs-on never matched, so jobs sat queued forever with no runner ever picking them up - confirmed via SSM /github-action-runners/lob-ci/webhook/runner-matcher-config and zero matching webhook deliveries for this repo's job IDs.
Confirmed the queued-forever jobs weren't a label-case bug: every
public Lob repo sampled (lob-go, lob-python, pdffonts, litmus, etc,
10 total) runs on ubuntu-latest, every private repo sampled
(logger-go, metrics-go, webhooks, picasso, list-loader) uses
self-hosted lob-runner - and label casing is inconsistent across
those private repos' own workflows without issue, ruling out case
sensitivity as the blocker.
The org's runner group ("Ephemeral" in
terraform-services/ci/action-runners) is scoped to private repos by
design - matches the fork-exec-on-Lob-infra risk flagged earlier in
this same PR. Public repos use GitHub-hosted runners; this matches
house convention rather than requiring an org admin to change runner
group scope for one public repo.
wryan97
approved these changes
Aug 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Notes
main(wasmaster);masterkept as-is (branch-protected, cannot delete via API)feat:,fix:,chore:, etc) for release-please to compute next semverTest plan
go build ./...go test -race ./...