Migrate CI from Cirrus CI to GitHub Actions#167
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6c2553c3ff
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| with: | ||
| distribution: goreleaser-pro | ||
| version: "~> v2" | ||
| args: release --clean |
There was a problem hiding this comment.
When this tag workflow reaches goreleaser release --clean, it publishes without any preceding lint or test job; the new CI workflow only runs on PRs, merge groups, manual runs, and pushes to the main branch, so tag pushes do not exercise it. The removed Cirrus release task depended on both Lint and Test, so tagging a broken commit can now publish artifacts before formatting, clippy, or the macOS test matrix has passed; add equivalent checks to this workflow or otherwise make tag releases wait for a tag-triggered CI run.
Useful? React with 👍 / 👎.
What changed
publishenvironment and release secrets exclusive to tag-triggered releases; manual snapshots run in a separate secretless jobopenai/homebrew-toolsthrough a pull request using short-lived GitHub App tokensRelease setup
The tag-only release job uses the
publishenvironment, which providesGORELEASER_KEY,RELEASE_APP_ID, andRELEASE_APP_PRIVATE_KEY. The release app needs contents write access toopenai/softnet, plus contents and pull-request write access toopenai/homebrew-tools. The manual snapshot job uses no environment or secrets.Validation
actionlint(allowing the custom Cirrus macOS runner labels)goreleaser check --softwith GoReleaser Pro 2.16.0env -u GORELEASER_KEY goreleaser release --skip=publish --snapshot --cleancargo fmt --checkcargo clippy --all-targets --all-features -- -D warningsWith the Pro key explicitly unset, the GoReleaser snapshot built both macOS architectures, created the universal archive, and generated
dist/homebrew/Formula/softnet.rb.cargo testbuilt successfully and reached the test binary, whose configuredsudo -Erunner cannot execute in the local sandbox; the migrated test jobs run on the configured macOS runners.