Skip to content

fix(ci): prefetch buildx attestation manifests#481

Merged
bgentry merged 1 commit into
masterfrom
bg-fix-manifest-publish-pull-through
Jan 2, 2026
Merged

fix(ci): prefetch buildx attestation manifests#481
bgentry merged 1 commit into
masterfrom
bg-fix-manifest-publish-pull-through

Conversation

@bgentry

@bgentry bgentry commented Jan 2, 2026

Copy link
Copy Markdown
Contributor

Buildx can embed attestation manifests directly in the OCI index (vnd.docker.reference.type=attestation-manifest):

~  docker buildx imagetools inspect --raw riverqueue.com/riverproui:latest | jq .
{
  "schemaVersion": 2,
  "mediaType": "application/vnd.oci.image.index.v1+json",
  "manifests": [
    {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "digest": "sha256:c0611027c37b396f95ad2d44428eaed21834e91ea8ee0bf7b887ff7b38cf47ab",
      "size": 673,
      "platform": {
        "architecture": "arm64",
        "os": "linux"
      }
    },
    {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "digest": "sha256:8faa4eaef58a4f9b931d12af60bf265d96f6f2dda8e3c6a428848cdcefcf9f20",
      "size": 567,
      "annotations": {
        "vnd.docker.reference.digest": "sha256:c0611027c37b396f95ad2d44428eaed21834e91ea8ee0bf7b887ff7b38cf47ab",
        "vnd.docker.reference.type": "attestation-manifest"
      },
      "platform": {
        "architecture": "unknown",
        "os": "unknown"
      }
    },
    {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "digest": "sha256:ccdc5e5e3e11e2c48269f96186e6f4b762c1cddc6fe19d3f0b08c548bae50af0",
      "size": 673,
      "platform": {
        "architecture": "amd64",
        "os": "linux"
      }
    },
    {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "digest": "sha256:bda0aad141eadb946e0754aa5459db1a4e49730a6b752562eda94a93f32035b8",
      "size": 567,
      "annotations": {
        "vnd.docker.reference.digest": "sha256:ccdc5e5e3e11e2c48269f96186e6f4b762c1cddc6fe19d3f0b08c548bae50af0",
        "vnd.docker.reference.type": "attestation-manifest"
      },
      "platform": {
        "architecture": "unknown",
        "os": "unknown"
      }
    }
  ],
  "annotations": {
    "org.opencontainers.image.description": "River UI Pro is a web-based user interface for River, with pro features.",
    "org.opencontainers.image.licenses": "commercial",
    "org.opencontainers.image.source": "https://github.com/riverqueue/riverui"
  }
}

However our publication workflow was not doing a pull-through fetch of these artifacts so they aren't available on the registry. This PR fixes that by adding a small helper script to extract these digests from the index and force-fetch each digest via the live registry and warm its blobs.

I'll have to test this via a prerelease for the next version.

Buildx can embed attestation manifests directly in the OCI index
(vnd.docker.reference.type=attestation-manifest).

In our ECR -> Workers -> R2 pull-through flow, these digests can be
referenced by the index but missing from R2 if they are not requested
while ECR still retains them, leading to pull failures.

- Add a small helper script to extract these digests from the index
- Force-fetch each digest via the live registry and warm its blobs
@bgentry
bgentry requested a review from brandur January 2, 2026 20:26
@bgentry
bgentry merged commit 4e58b55 into master Jan 2, 2026
23 checks passed
@bgentry
bgentry deleted the bg-fix-manifest-publish-pull-through branch January 2, 2026 20:42
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