Phase 1 / Chore / CI cache refresh + ReleaseSafe budget#41
Merged
Conversation
Replace the monolithic actions/cache@v5 step in build-and-test with an explicit restore/save split: per-sha primary key, three-level prefix fallback (exact sha -> newest under this zon -> newest under this os/mode/zig), a post-build save keyed -build for timeout immunity, and a final if-always post-test save. The old key had no per-commit component and never re-saved on an exact hit, so the cache fossilized and the windows-2025 ReleaseSafe recompile outgrew its 40-min budget. ReleaseSafe timeout raised to 55 min (Debug stays 20); the timing report now records cache_matched_key. Refs: brief briefs/chore-ci-cache-refresh.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brief
briefs/chore-ci-cache-refresh.md — Status: CLOSED
Summary
Fixes the fossil-cache mechanism that had the required check
build-and-test (windows-2025, ReleaseSafe)dying on its job timeout since M1.0.11. The monolithicactions/cache@v5step inbuild-and-testis split intoactions/cache/restore@v5+ twoactions/cache/save@v5steps (per-sha primary key, three-level prefix fallback, post-zig buildsave for timeout immunity, finalif: always()save); ReleaseSafe budget 40 -> 55 min (Debug unchanged); the timing artifact now recordscache_matched_key. One file changed (.github/workflows/ci.yml) plus the brief.Acceptance criteria
build-and-testcells green — includingwindows-2025, ReleaseSafeCOMPLETING (35 min 27 s near-cold, under the new 55-min budget)windows-2025, ReleaseSafetiming artifact showstest_secondspopulated (1652 near-cold; first non-NA since M1.0.11) and reports the matched restore keyci-gate+ matrix + smokes + bench)commit-msghook green on every commit (≤72-char subjects)Review notes
cache_hit=true,build_seconds=2,test_seconds=20).if: always()final save salvaged its cache, and the rerun exact-hit that entry and went green in 1 min 47 s.chore(ci)instead of the prompt'sci(...)— the §4.3 whitelist (hook-enforced) has nocitype;chore(ci)is the spec's own canonical example.actions/cache@v5sites keep the write-once pattern (self-correcting on fossil eviction; the smoke jobs' comment is now slightly stale — left for scope discipline); ubuntu ReleaseSafe showed one warm-lineage variance run (correctcache_matched_key, near-cold wall-time) worth watching in future artifacts.actions/cache/restore@v5/actions/cache/save@v5are sub-actions of the already-whitelistedactions/cache@v5(same repo, same major) — noted in-file.Merge sequence
This chore unblocks PR #40 (M1.0.12). After this merges, the push run on
mainwrites the fresh main-scoped cache; PR #40's checks are then re-run (warm from main), and M1.0.12 merges + tags. Squash-and-merge, no tag (maintenance chore, §6.1).Changelog
🤖 Generated with Claude Code