Skip to content

CI hardening: permissions, SHA pins, concurrency, weekly run, ASan+UBSan job (#141, #13) - #152

Open
petlenz wants to merge 3 commits into
mainfrom
fix-141-ci-hardening
Open

petlenz wants to merge 3 commits into
mainfrom
fix-141-ci-hardening

Conversation

@petlenz

@petlenz petlenz commented Aug 2, 2026 •

Copy link
Copy Markdown
Member

Closes #141. Closes #13 — this delivers its last remaining item. Closes #27 — CPM sources now cached (actions/cache v6.1.0 SHA-pinned, key = hash of the two pin-carrying CMakeLists), plus per-job timeout-minutes (45 build, 60 sanitize) (the ASan/UBSan job — the other two #13 items, the numsim-cas pin and test -Werror, landed previously).

Workflow (build.yml):

  • permissions: contents: read (default token had write on push builds)
  • actions/checkout SHA-pinned to v4.2.2 (11bd7190...) — was the one movable ref in an otherwise SHA-pinned supply chain
  • concurrency group cancelling superseded PR runs (never main/scheduled)
  • weekly scheduled run (Mon 04:17 UTC) so upstream bit-rot (LLVM apt, pins, runner image) surfaces between pushes
  • new sanitize job: gcc-14 Debug, -fsanitize=address,undefined -fno-sanitize-recover=all, full ctest including the Phase-B e2e gate (FETCH_MATERIALS=ON)

Fetch pins (tests/CMakeLists.txt): googletest and Eigen moved from movable tags (v1.14.0, 3.4.0) to the corresponding commit SHAs; GIT_SHALLOW dropped where a raw-SHA fetch makes it unreliable (CPM auto-disables it for hash tags).

Pre-verified locally so the new job starts green: full suite 321/321 under ASan+UBSan, plus the Phase-B numsim_material_check_driver (17/17, CPM-pinned siblings) under the same flags — zero sanitizer reports. Fresh configure with the SHA pins resolves cleanly.

@petlenz
petlenz force-pushed the fix-141-ci-hardening branch from 926fdb6 to 067b1fc Compare September 20, 2026 19:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant