Skip to content

ci: fix multi-arch manifest for Docker Hub and GHCR#288

Merged
chorrell merged 1 commit into
mainfrom
ci/multi-arch-manifest
May 26, 2026
Merged

ci: fix multi-arch manifest for Docker Hub and GHCR#288
chorrell merged 1 commit into
mainfrom
ci/multi-arch-manifest

Conversation

@chorrell
Copy link
Copy Markdown
Owner

Problem

Each matrix job (amd64 + arm64) was pushing to the exact same final tags. Whichever job finished last silently overwrote the other, leaving every tag pointing to a single-arch manifest.

Solution

  • Each matrix job now pushes only a platform-specific temporary tag (build-<run_id>-<platform>) to both registries.
  • A new merge job runs after all build jobs complete and uses docker buildx imagetools create to assemble the correct multi-arch manifest list for all final tags (<version>, <major>, current, latest).
  • Adds packages: write permission (required for GHCR pushes, was previously missing).

Previously each matrix job pushed the same final tags independently,
so whichever job finished last silently overwrote the other — leaving
only a single-arch manifest under every tag.

Now each matrix job pushes a platform-specific temp tag, and a
dedicated merge job uses docker buildx imagetools create to assemble
the final multi-arch manifest list for both DockerHub and GHCR.

Also adds packages: write permission required for GHCR pushes.
@chorrell chorrell merged commit 50a4185 into main May 26, 2026
3 checks passed
@chorrell chorrell deleted the ci/multi-arch-manifest branch May 26, 2026 03:16
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.

1 participant