Commit bb46e50
authored
feat(ci): attest build provenance (#31)
## Summary
Adds GitHub-native build-provenance attestation
(`actions/attest-build-provenance@e8998f94…` # v2, SHA-pinned) to
`.github/workflows/ci.yml`, mirroring the estate's proven exemplar.
## Attested artifacts
- **Container image** (`docker` job): attests the pushed GHCR image by
`subject-digest` (`steps.push.outputs.digest`), with `push-to-registry:
true`. Gated on `github.event_name == 'push'` so it does not run with an
empty digest when nothing was pushed. Added a job-level `permissions:`
block (`contents: read`, `packages: write`, `id-token: write`,
`attestations: write`) and `id: push` to the Build-and-push step.
- **Release binaries** (`release` job): attests `dist/*` (the downloaded
build artifacts) via `subject-path`. Added `id-token: write` +
`attestations: write` to the existing `permissions:` (kept `contents:
write`).
## Validation
- `python3 -c "import yaml; yaml.safe_load(...)"` passes.
- Commit is SSH-signed (verified).
Do not merge without owner review.1 parent 0fccbc5 commit bb46e50
1 file changed
Lines changed: 19 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
244 | 244 | | |
245 | 245 | | |
246 | 246 | | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
247 | 252 | | |
248 | 253 | | |
249 | 254 | | |
| |||
268 | 273 | | |
269 | 274 | | |
270 | 275 | | |
| 276 | + | |
271 | 277 | | |
272 | 278 | | |
273 | 279 | | |
| |||
276 | 282 | | |
277 | 283 | | |
278 | 284 | | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
279 | 292 | | |
280 | 293 | | |
281 | 294 | | |
| |||
285 | 298 | | |
286 | 299 | | |
287 | 300 | | |
| 301 | + | |
| 302 | + | |
288 | 303 | | |
289 | 304 | | |
290 | 305 | | |
| |||
298 | 313 | | |
299 | 314 | | |
300 | 315 | | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
0 commit comments