Skip to content

ci: attach provenance and SBOM attestations to the published container - #9398

Merged
lstein merged 4 commits into
invoke-ai:mainfrom
kobihikri:ci/image-provenance-sbom
Aug 7, 2026
Merged

ci: attach provenance and SBOM attestations to the published container#9398
lstein merged 4 commits into
invoke-ai:mainfrom
kobihikri:ci/image-provenance-sbom

Conversation

@kobihikri

Copy link
Copy Markdown
Contributor

Hi, and thanks for InvokeAI.

.github/workflows/build-container.yml publishes the container, but the pushed manifest carries no provenance or SBOM attestation. Someone pulling it cannot check that it was built by this workflow, from this repository, at that tag.

The SBOM half is the one I would argue for first here. An InvokeAI image is a large, opinionated stack — a specific torch build, CUDA or ROCm bits, and a long tail of Python packages pinned to work together. That combination is the whole value of using the image rather than installing locally, and right now the only way to see exactly what a given tag contains is to run it and inspect. sbom: true publishes that inventory next to the image.

The change is two lines on the build step:

          push: ...
          provenance: mode=max
          sbom: true

BuildKit attaches both to the image manifest, so they travel with the image. No permissions change is needed — nothing has to gain id-token, and your existing conditional push and cache configuration are untouched.

docker buildx imagetools inspect <image>:<tag> --format '{{ json .SBOM }}'

Two caveats: mode=max records build arguments (provenance: true gives a smaller record if any have ever been sensitive), and attestations add an extra manifest to the index, which the registry supports.

No SLSA level claimed — the attestation is what BuildKit produces.

Disclosure: I used AI assistance to help spot this and prepare the change, and I read the workflow myself.

@github-actions github-actions Bot added the CI-CD Continuous integration / Continuous delivery label Jul 28, 2026
@lstein lstein self-assigned this Jul 31, 2026
@lstein lstein added the 6.14.1 label Jul 31, 2026
@lstein lstein moved this to 6.14.1: Bug fixes to 6.14.0 in Invoke - Community Roadmap Jul 31, 2026

@lstein lstein left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thank you for your contribution.

@lstein
lstein enabled auto-merge (squash) August 7, 2026 17:00
@lstein
lstein merged commit 9a721fd into invoke-ai:main Aug 7, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.14.1 CI-CD Continuous integration / Continuous delivery

Projects

Status: 6.14.1: Bug fixes to 6.14.0

Development

Successfully merging this pull request may close these issues.

2 participants