Skip to content

Fix release workflow: manifest list conflict on major-version arch tags#63

Merged
jeremiahlukus merged 2 commits into
mainfrom
fix/release-manifest-list-conflict
Jun 6, 2026
Merged

Fix release workflow: manifest list conflict on major-version arch tags#63
jeremiahlukus merged 2 commits into
mainfrom
fix/release-manifest-list-conflict

Conversation

@jeremiahlukus
Copy link
Copy Markdown
Contributor

Summary

  • GHCR refuses to overwrite a manifest-list tag with a single-arch image push, so crypteia-extension-amzn-amd64:2 and crypteia-extension-debian-amd64:2 stayed as manifest lists from a prior release, causing docker manifest create to fail with "is a manifest list"
  • Remove the major-version tag (:2) from arch-specific image builds/pushes — those repos now only receive the exact version tag (:2.2.1)
  • Both combined manifest lists (:2.2.1 and :2) reference the exact-version arch images, which are always fresh tags
  • Add docker manifest rm … || true before each docker manifest create to clear stale local manifest cache entries
  • Fix deprecated LABEL key valueLABEL key=value syntax in package/Dockerfile (removes two build warnings)

Test plan

  • Trigger release workflow from this branch with a test version
  • Confirm debian and amzn jobs pass without "is a manifest list" error
  • Confirm multi-arch manifest tags :VERSION and :MAJOR are created correctly in GHCR

…ic repos

GHCR will not overwrite a manifest-list tag with a single-arch image push,
causing docker manifest create to fail with "is a manifest list". Fix by
only pushing the exact version tag to -amd64/-arm64 repos; both manifest
lists (:VERSION and :MAJOR) now reference the exact-version arch images.
Also fix deprecated LABEL syntax warnings in package/Dockerfile.
Newer Docker/BuildKit wraps single-platform builds in an OCI index when
it attaches a provenance attestation manifest. This makes every pushed
image a manifest list, causing docker manifest create to fail with "is a
manifest list". Setting BUILDX_NO_DEFAULT_ATTESTATIONS=1 prevents the
attestation wrapper so arch-specific images are pushed as plain
single-platform manifests.
@jeremiahlukus jeremiahlukus merged commit 6a93645 into main Jun 6, 2026
12 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.

1 participant