Skip to content

ci: publish multi-arch images to ghcr.io - #56

Merged
khvn26 merged 1 commit into
mainfrom
docker-ghcr
Jul 30, 2026
Merged

ci: publish multi-arch images to ghcr.io#56
khvn26 merged 1 commit into
mainfrom
docker-ghcr

Conversation

@khvn26

@khvn26 khvn26 commented Jul 29, 2026

Copy link
Copy Markdown
Member

Closes #45.

Verified locally

  • goreleaser release --snapshot --clean --skip=publish built both per-arch images.
  • Ran the arm64 image: flagsmith version v1.1.0, cert bundle present at /etc/ssl/certs/ca-certificates.crt, and a request reached edge.api.flagsmith.com over TLS — so the trust store works.

Important

  • After the first publish the ghcr package needs to be made public by hand.
  • No :main tag yet: dockers_v2 only runs on a tag.

docker_digest writes digests.txt so the images get attested too. That step is the one thing here I could not verify locally — snapshot mode publishes nothing, so no digest file exists until a real tag.

@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The release process now builds multi-platform Docker images for the Flagsmith CLI, publishes them to GHCR, and attests their digests. A multi-stage Dockerfile supplies CA certificates and selects platform-specific binaries. The README adds Docker usage instructions and documents credential configuration through environment variables.

Estimated code review effort: 3 (Moderate) | ~20 minutes


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@khvn26
khvn26 marked this pull request as ready for review July 29, 2026 10:50
@khvn26
khvn26 requested review from a team and emyller and removed request for a team July 29, 2026 12:28
@khvn26 khvn26 mentioned this pull request Jul 29, 2026
10 tasks
Zaimwa9
Zaimwa9 previously approved these changes Jul 30, 2026

@Zaimwa9 Zaimwa9 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment as upstream

Comment thread .github/workflows/release.yml
@khvn26
khvn26 force-pushed the goreleaser-binaries branch from 513c2fc to 96727e9 Compare July 30, 2026 10:36
@khvn26
khvn26 dismissed Zaimwa9’s stale review July 30, 2026 11:20

The merge-base changed after approval.

@khvn26
khvn26 force-pushed the goreleaser-binaries branch from 96727e9 to 7dc04a1 Compare July 30, 2026 11:20
@khvn26
khvn26 force-pushed the docker-ghcr branch 3 times, most recently from f816b57 to 20db097 Compare July 30, 2026 12:05
@khvn26
khvn26 force-pushed the goreleaser-binaries branch from e0524b2 to ab10f29 Compare July 30, 2026 12:10
Zaimwa9
Zaimwa9 previously approved these changes Jul 30, 2026
@khvn26
khvn26 changed the base branch from goreleaser-binaries to main July 30, 2026 12:58
@khvn26
khvn26 dismissed Zaimwa9’s stale review July 30, 2026 12:58

The base branch was changed.

goreleaser's dockers_v2 assembles the manifest from the binaries it already
built, so the image is a COPY of a static binary and the repo keeps one
version-stamping path.

The final stage runs nothing: a RUN would need QEMU to execute a non-native
arch under buildx, so the cert bundle is copied out of a BUILDPLATFORM stage
instead. Alpine over distroless keeps a shell, which the image needs to serve
as a CI job image.

Beta releases take :latest — nothing stabler is published yet.

beep boop

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 87f14019-981a-4ffc-860b-c3d1e200bbf7

📥 Commits

Reviewing files that changed from the base of the PR and between 0647ea1 and 9c129d4.

📒 Files selected for processing (4)
  • .github/workflows/release.yml
  • .goreleaser.yaml
  • Dockerfile
  • README.md

Comment thread Dockerfile
Comment thread Dockerfile

@matthewelwell matthewelwell left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blindly stamping based on previous approval which was dismissed by a rebase 🙈

@khvn26
khvn26 merged commit ebb84d9 into main Jul 30, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add release binaries, Golang CI, Docker images

4 participants