Repository navigation
ci(release): publish the agent image as an amd64+arm64 index - #1775
Merged
Merged
Conversation
publish-image splits into publish-image-amd64 and publish-image-arm64, each pushing only its immutable git-<sha12>-<arch> tag. A new publish-image-manifest job composes the index by digest in a fixed member order, guards :git-<sha12> (equal list digest skips, different fails, only manifest-unknown pushes), pushes :latest, and verifies the platform set, the member digest set, each member's config platform, and the :latest coherence. publish.sh loses its bare default tag set, and the temporary arm64 spike job is removed. Refs RIG-3751 Co-authored-by: Matt Wilkinson <matt@rigel.build>
|
😎 This pull request was merged. |
|
Compass engineering docs preview: https://compass-native-rig-3751-agen.compass-eng-docs.pages.dev Deployed from |
…er :latest - release-image copies :git-<sha12> to :vX.Y.Z with --multi-arch all and --preserve-digests, and verifies and exports the list digest. - release-notes records the manifest digest (sha256 of the raw bytes), so an index is reported as itself. - publish-image-manifest leaves :latest unmoved when a newer main commit already has its :git index, so out-of-order runs cannot move it back. - publish.sh truncates the sha to 12 chars, matching the index job. Refs RIG-3751 Co-authored-by: Matt Wilkinson <matt@rigel.build>
- A run whose sha is no longer on main never moves :latest. - When a newer :git index exists, :latest must match it; a newer run that failed before :latest now reds the older run instead of passing. Refs RIG-3751 Co-authored-by: Matt Wilkinson <matt@rigel.build>
rigel-mintaka
marked this pull request as ready for review
October 6, 2026 19:38
mattwilkinsonn
added this pull request to stack #1836
October 7, 2026 00:39
mattwilkinsonn
approved these changes
Oct 7, 2026
|
This pull request was merged into |
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.
This PR is part of a stack containing 2 PRs:
mainSummary
publish-imageintopublish-image-amd64(ubuntu-latest) andpublish-image-arm64(ubuntu-24.04-arm). Each job pushes only its immutablegit-<sha12>-<arch>tag.publish-image-manifestjob::git-<sha12>: an equal list digest skips, a different one fails, only manifest-unknown pushes, and any other error aborts.:latestmoves only when this sha is on main and no newer main commit has a published:gitindex. Runs can reach this job out of commit order, so an older run cannot move:latestbackward.:latestmust then match the newest published index, or the job fails.:latestmatches when it moved.release-imagecopies the full index to:vX.Y.Zwith--multi-arch all --preserve-digests, then verifies and exports the list digest.tools/release-notesrecords the manifest digest (sha256 of the raw bytes), so an index is reported as itself.publish.shrequires--arch-suffixor explicit tags; a bare call now errors. It also truncates the sha to exactly 12 characters, matching the index job.Verification
registry:2harness with real busybox amd64 and arm64 members:release-imagecopy kept the index list digest and both platforms (a plain copy produced one image manifest);:latestguard behaved correctly in five cases: no newer index, newer index published, tip run, sha not on main (aborts), registry down (aborts).bun testintools/release-notes: 26 pass. The two new digest tests fail against the old code.biome check tools/release-notesandshellcheck agent-image/publish.share clean.main.Risks
The first
mainrun is the real test of the index job. A failure leaves:lateston the previous amd64 image. Rollback is a revert. GitHub runners ship podman 4.9.3; the flags used are present there.Compatibility
:latest,:git-<sha12>and:vX.Y.Zbecome multi-arch indexes. amd64 pulls resolve to the same kind of image as before. The release body's image digest is now the index digest instead of a config digest. Callingpublish.shwith no arguments now fails.Documentation
None: CI-only change. The behaviour follows the existing design record.
Refs RIG-3751