ci: capture bounded booklet build environment #10

Merged
clawlter merged 4 commits from audit/bound-build-environment into audit/pdf-artifact-provenance 2026-07-13 01:47:25 -04:00
Owner

Summary

  • define a checked-in Ubuntu 24.04 build-environment contract for CI tooling and exact apt package versions
  • resolve the moving checkout v6 tag to a concrete commit, record that provenance, and enforce the maintained major plus recorded snapshot with a clear intentional-update path
  • capture tool versions, apt versions, runner identity, font resolution, checkout provenance, and source commit as a JSON Actions artifact
  • fail fast on unsupported runner/tool/package/font/checkout drift while preserving diagnostics for upload
  • test strict-mode output persistence and document the contract, update process, and rollback path

Verification

  • python3 -m unittest discover -s tests -v (31 passed)
  • TEXLIVE_BIN=/opt/hermes-runtime/tools/texlive/2026/bin/x86_64-linux make clean build
  • qpdf --check build/booklet-pages.pdf
  • qpdf --check build/booklet-print.pdf
  • git fsck --full
  • git lfs fsck
  • git verify-commit HEAD
  • Forgejo Actions run 29: success (all 9 steps)
  • downloaded build-environment-provenance artifact: parseable JSON, contract_check.strict=true, no errors, Ubuntu 24.04.4, checkout snapshot matched

Review follow-up

  • Added regression coverage proving strict runner drift persists parseable diagnostics before returning nonzero.
  • Clarified scheduler selection versus the effective Ubuntu 24.04 environment in README. The checked-in workflow uses runs-on: ubuntu-latest and no container: stanza; this differs from the earlier review text claiming runs-on: docker, so the documentation follows fetched signed source HEAD rather than asserting a nonexistent stanza.

Rollback

Revert the branch commits; no booklet source, rendered PDFs, or release artifacts are changed by this PR.

## Summary - define a checked-in Ubuntu 24.04 build-environment contract for CI tooling and exact apt package versions - resolve the moving checkout v6 tag to a concrete commit, record that provenance, and enforce the maintained major plus recorded snapshot with a clear intentional-update path - capture tool versions, apt versions, runner identity, font resolution, checkout provenance, and source commit as a JSON Actions artifact - fail fast on unsupported runner/tool/package/font/checkout drift while preserving diagnostics for upload - test strict-mode output persistence and document the contract, update process, and rollback path ## Verification - `python3 -m unittest discover -s tests -v` (31 passed) - `TEXLIVE_BIN=/opt/hermes-runtime/tools/texlive/2026/bin/x86_64-linux make clean build` - `qpdf --check build/booklet-pages.pdf` - `qpdf --check build/booklet-print.pdf` - `git fsck --full` - `git lfs fsck` - `git verify-commit HEAD` - Forgejo Actions run 29: success (all 9 steps) - downloaded `build-environment-provenance` artifact: parseable JSON, `contract_check.strict=true`, no errors, Ubuntu 24.04.4, checkout snapshot matched ## Review follow-up - Added regression coverage proving strict runner drift persists parseable diagnostics before returning nonzero. - Clarified scheduler selection versus the effective Ubuntu 24.04 environment in README. The checked-in workflow uses `runs-on: ubuntu-latest` and no `container:` stanza; this differs from the earlier review text claiming `runs-on: docker`, so the documentation follows fetched signed source HEAD rather than asserting a nonexistent stanza. ## Rollback Revert the branch commits; no booklet source, rendered PDFs, or release artifacts are changed by this PR.
ci: capture bounded booklet build environment
Some checks failed
Booklet CI / Validate and build booklet PDFs (pull_request) Has been cancelled
1342f94099
clawlter changed title from ci: capture bounded booklet build environment to WIP: ci: capture bounded booklet build environment 2026-07-12 23:25:05 -04:00
ci: gate runner drift through provenance contract
Some checks failed
Booklet CI / Validate and build booklet PDFs (pull_request) Failing after 32m2s
f4cfa56f34
ci: retain environment diagnostics on failed runs
All checks were successful
Booklet CI / Validate and build booklet PDFs (pull_request) Successful in 17m28s
3d7b2fbf61
test: preserve strict environment diagnostics
All checks were successful
Booklet CI / Validate and build booklet PDFs (pull_request) Successful in 12m38s
0c1a85426b
clawlter changed title from WIP: ci: capture bounded booklet build environment to ci: capture bounded booklet build environment 2026-07-13 01:33:15 -04:00
clawlter merged commit 0c1a85426b into audit/pdf-artifact-provenance 2026-07-13 01:47:25 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
clawlter/chamblee-2026-booklet!10
No description provided.