Skip to content

Disable buildx provenance and add publish dry-run check#633

Merged
tjgreen42 merged 2 commits intomasterfrom
fix-provenance-and-publish-check
Feb 13, 2026
Merged

Disable buildx provenance and add publish dry-run check#633
tjgreen42 merged 2 commits intomasterfrom
fix-provenance-and-publish-check

Conversation

@tjgreen42
Copy link
Contributor

@tjgreen42 tjgreen42 commented Feb 13, 2026

Summary

Two commits, structured so the first one should fail and the second fixes it:

  1. Add publish dry-run check workflow — Runs on PRs and exercises the full publish flow for the most demanding build variant (pg18-all amd64 = 4 PG versions with all extensions and debug symbols). Builds, pushes to -cicheck test tags on Docker Hub, and validates that the image digests are compatible with docker manifest create. Can be configured as a required status check. This is motivated by repeated publish workflow breaks on master (Install debugsymbol packages for extensions we use #630 broke the build with disk space exhaustion, and the fix in Free more disk space on CI runners #632 unmasked a pre-existing manifest creation failure from buildx provenance attestations).

  2. Disable buildx provenance (--provenance=false) — Buildx with the docker-container driver wraps images in an OCI index when provenance attestations are enabled (the default). This causes docker manifest create --amend to fail because the per-platform digests point to manifest lists rather than single images. This wasn't introduced by a repo change — it's a buildx default that was masked while builds were failing. (failed run)

Testing

The publish check workflow will run on this PR. The first run (commit 1 only) should fail at the "Validate digests" step, proving the check catches the provenance issue. After the second commit is picked up, it should pass.

Add a publish_check workflow that runs on PRs and exercises the full
publish flow for the most demanding build variant (pg18-all amd64).
This builds, pushes to test tags, and validates that the image digests
are compatible with docker manifest create (i.e. not manifest lists).

This catches disk space, build, and manifest issues before they reach
the publish workflow on master.
Buildx with the docker-container driver wraps images in an OCI index
when provenance attestations are enabled (the default). This causes
docker manifest create --amend to fail with "is a manifest list"
because the per-platform digests point to manifest lists rather than
single images.
@tjgreen42 tjgreen42 force-pushed the fix-provenance-and-publish-check branch from c009de8 to cd68fa8 Compare February 13, 2026 17:28
tjgreen42 added a commit that referenced this pull request Feb 13, 2026
Cherry-pick the publish_check workflow WITHOUT the --provenance=false
fix. This PR should fail at the "Validate digests" step, proving the
check catches the manifest list issue. See #633.
@tjgreen42 tjgreen42 marked this pull request as ready for review February 13, 2026 18:50
@tjgreen42 tjgreen42 requested a review from a team February 13, 2026 18:50
Copy link
Collaborator

@graveland graveland left a comment

Choose a reason for hiding this comment

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

lgtm, thanks!

@tjgreen42 tjgreen42 merged commit 13c17b4 into master Feb 13, 2026
3 checks passed
@tjgreen42 tjgreen42 deleted the fix-provenance-and-publish-check branch February 13, 2026 19:02
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.

2 participants