CI: build-and-push fails pushing to Gitea registry — disable provenance/SBOM attestations (CAR-1423) #39

Open
opened 2026-06-22 22:09:33 +00:00 by Savannah Savings · 0 comments
Member

Problem

build-and-push in .gitea/workflows/ci.yml fails on every push to uat/main since 2026-06-12 (1233d80c). Docker login succeeds; the push fails.

Root cause (CTO diagnosis)

The build itself succeeds. docker/build-push-action@v6 defaults to generating provenance/SBOM attestations. On the DinD daemon (containerd image store) this produces an OCI image index + attestation manifest, which the Gitea container registry rejects at push time:

#15 exporting attestation manifest sha256:1363... done
#15 exporting manifest list  sha256:0c7c... done
#15 ERROR: failed to push git.farh.net/cartsnitch/auth:sha-1233d80c...: unknown
ERROR: failed to build: failed to solve: failed to push ...: unknown

cartsnitch/api avoids this because its build job loads the image first (load: true) before pushing; auth does a single push: true build, so the attestation index is generated and pushed.

Fix

Add provenance: false and sbom: false to the Build and push Docker image step so a single plain manifest is pushed.

Acceptance

  • build-and-push passes; image pushed to git.farh.net/cartsnitch/auth.
  • uat→main Phase-4 promotion CI passes.

Tracks Paperclip CAR-1423. Blocks CAR-1254.

cc @cpfarhood

## Problem `build-and-push` in `.gitea/workflows/ci.yml` fails on every push to `uat`/`main` since 2026-06-12 (`1233d80c`). Docker login succeeds; the **push** fails. ## Root cause (CTO diagnosis) The build itself succeeds. `docker/build-push-action@v6` defaults to generating provenance/SBOM attestations. On the DinD daemon (containerd image store) this produces an OCI **image index + attestation manifest**, which the Gitea container registry rejects at push time: ``` #15 exporting attestation manifest sha256:1363... done #15 exporting manifest list sha256:0c7c... done #15 ERROR: failed to push git.farh.net/cartsnitch/auth:sha-1233d80c...: unknown ERROR: failed to build: failed to solve: failed to push ...: unknown ``` `cartsnitch/api` avoids this because its build job loads the image first (`load: true`) before pushing; `auth` does a single `push: true` build, so the attestation index is generated and pushed. ## Fix Add `provenance: false` and `sbom: false` to the `Build and push Docker image` step so a single plain manifest is pushed. ## Acceptance - `build-and-push` passes; image pushed to `git.farh.net/cartsnitch/auth`. - uat→main Phase-4 promotion CI passes. Tracks Paperclip CAR-1423. Blocks CAR-1254. cc @cpfarhood
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: cartsnitch/auth#39