🤖 ci: unify :main and release image builds via goreleaser#87
🤖 ci: unify :main and release image builds via goreleaser#87
Conversation
Route the :main GHCR publish job through GoReleaser so it shares the same image pipeline as release builds, and enable linux/arm64 alongside linux/amd64 in GoReleaser Docker outputs. --- _Generated with `mux` • Model: `openai:gpt-5.3-codex` • Thinking: `xhigh` • Cost: `$0.61`_ <!-- mux-attribution: model=openai:gpt-5.3-codex thinking=xhigh costs=0.61 -->
|
@codex review Please review this change set for CI and GoReleaser unification. Focus areas:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 738b747365
ℹ️ 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".
Avoid rendering an empty Docker tag in main-channel GoReleaser runs by using separate dockers_v2 entries with channel-specific disable rules. This keeps `:main` and release tags explicit and always non-empty. --- _Generated with `mux` • Model: `openai:gpt-5.3-codex` • Thinking: `xhigh` • Cost: `$0.61`_ <!-- mux-attribution: model=openai:gpt-5.3-codex thinking=xhigh costs=0.61 -->
|
@codex review Addressed your feedback by splitting
Please re-review. |
|
Codex Review: Didn't find any major issues. Can't wait for the next one! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
Summary
Unify container publishing so
:mainand release images are both built by GoReleaser, and enable multi-arch (linux/amd64+linux/arm64) Docker output.Background
Previously, the CI
publish-mainjob manually built an amd64 binary and useddocker/build-push-action, while release images were built via GoReleaser. This duplicated image logic and left:mainsingle-arch.Implementation
.goreleaser.yaml:release.disablegate for main-channel runs (GORELEASER_CHANNEL=main) so CI can usegoreleaser releasewithout creating a GitHub release.main{{ .Version }}andlatestlinux/amd64linux/arm64.github/workflows/ci.yamlpublish-mainjob:fetch-depth: 0for git metadata availability.goreleaser/goreleaser-action.GORELEASER_CURRENT_TAG=v0.0.0-mainGORELEASER_CHANNEL=main.goreleaser.yamlin publish path filtering.Validation
make verify-vendormake testmake buildmake lintgo run github.com/rhysd/actionlint/cmd/actionlint@v1.7.10go run github.com/goreleaser/goreleaser/v2@v2.13.1 checkGORELEASER_CHANNEL=main go run github.com/goreleaser/goreleaser/v2@v2.13.1 checkGORELEASER_CHANNEL=main GORELEASER_CURRENT_TAG=v0.0.0-main go run github.com/goreleaser/goreleaser/v2@v2.13.1 release --clean --skip=announce,publish,docker,validateRisks
GORELEASER_CURRENT_TAG). If altered/removed, the main publish job may fail on untagged commits.Generated with
mux• Model:openai:gpt-5.3-codex• Thinking:xhigh• Cost:$0.61