Commit 4b3e0cb
feat(ci): attest build provenance (#287)
## Estate attestation rollout
Adds GitHub native build-provenance attestation to
`.github/workflows/ghcr-publish.yml`.
**Push mechanism:** nerdctl (`nerdctl build` + `nerdctl push` to
ghcr.io). This workflow pushes **two distinct artifacts**: the minimal
image (`:${{ github.sha }}` / `:latest`, from
`.containerization/Containerfile`) and the `:full` image (from
`.containerization/Containerfile.full`).
**How the digest is obtained:** `nerdctl push` has no `--digestfile`
flag, so after the pushes the workflow reads each image's real
`sha256:...` digest back from the registry with `skopeo inspect --format
'{{.Digest}}'` (pre-installed on `ubuntu-latest`), authenticating with
`GITHUB_TOKEN`. Because the minimal and full images are different
artifacts with different digests, each gets its own attestation step.
**Changes:**
- The job already declared `id-token: write` + `attestations: write` —
no permission change needed.
- Captured the minimal and full image digests via `skopeo inspect`.
- Added two `actions/attest-build-provenance@e8998f94…` (v2, pinned)
steps (minimal + full), both with `push-to-registry: true`.
Verify with:
```
gh attest verify oci://ghcr.io/hyperpolymath/echidna:<tag> --repo hyperpolymath/echidna
```
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>1 parent 15aa05a commit 4b3e0cb
1 file changed
Lines changed: 31 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
| 68 | + | |
68 | 69 | | |
69 | 70 | | |
70 | 71 | | |
71 | 72 | | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
72 | 103 | | |
73 | 104 | | |
74 | 105 | | |
| |||
0 commit comments