ci(cache): setup-soldr v0.9.78 save-cache: auto, share the Linux dev cook base, cache-policy guard (#355) - #356
Merged
Merged
Conversation
…inux dev cook base, guard the policy (#355) - Bump all seven setup-soldr pins to v0.9.78 (fabebf4), which adds `save-cache` (setup-soldr#527); every step sets `save-cache: auto`, so pull-request runs restore but upload no durable caches. - release.yml validate-and-package cooked a `--release` base under no suffix although every step compiles the dev profile. It now cooks the dev profile with suffix `linux` and ci.yml's CARGO_PROFILE_DEV_DEBUG, so it restores the one ~2.4 GB base ci.yml's `linux` job saves on main. - ci/test_cache_policy.py (run by ci.yml's guard step): one pinned SHA, every step classified by target and profile, cook flags match the profile, one suffix per target and graph unless justified, and no step saves on pull_request without a v0.9.78+ pin and `save-cache: auto` (or a listed justification for `true`). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
6 tasks
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.
Fixes #355
Part of zackees/setup-soldr#528
Changes
zackees/setup-soldrsteps (ci.yml x3, release.yml x2, auto-release.yml, macos-x64-tests.yml) move fromc2a3b96(v0.9.77) tofabebf4(v0.9.78, setup-soldr#527). Each step now setssave-cache: autoexplicitly, so pull-request runs still restore but upload no durable cache layers.save-cache: "true"anywhere: in a PR run, no job restores an entry that another job in that run saved.linux, eachbuildtarget anddylintskey their own caches, andtestcompiles nothing.ci.yml linuxandrelease.yml validate-and-package, both x86_64 Linux. The release job cooked--releasewith no suffix, although every step it runs (cargo test, crate package verification) compiles the dev profile. That was a second ~2.4 GB base that nothing reused.linuxandCARGO_PROFILE_DEV_DEBUG: line-tables-only, so it restoreslinux's base saved on main.buildtargets (one base each, keyed bymatrix.target),dylints(prebuild-deps: none), and thecache: falserelease, auto-release and macOS x64 steps.ci/test_cache_policy.py, added to ci.yml's guard-step unittest invocation. It checks:JUSTIFIED_SPLITSnames a reason;save-cache;pull_requestworkflow saves without a v0.9.78+ pin andsave-cacheauto or false, unlessPR_SAVE_JUSTIFICATIONSnames a reason (empty today);RED -> GREEN
Against the old workflows (v0.9.77 pins), with the new test in place:
FAILED (failures=12).test_no_step_saves_on_pull_requestfails for ci.ymllinux,buildanddylints: they need a v0.9.78+ pin withsave-cacheunset orauto.test_every_step_states_its_save_policyfails for all 7 steps.test_cook_flags_match_the_compiled_profilefails for releasevalidate-and-package:'--release' != ''.test_one_suffix_per_target_and_graphfails:{'linux': ['ci.yml:linux'], '': ['release.yml:validate-and-package']}.After this change:
Ran 8 tests ... OK.Local validation
soldr cargo fmt --all -- --check: OK.ci.test_native_proof ci.test_native_proof_jobs ci.test_macos_x64_guest ci.test_ci_modes ci.test_release_ci_gate ci.test_nextest_config ci.test_deny_warnings ci.test_target_features ci.test_cache_policy): 92 tests, OK.soldr cargo clippy --locked --all-features --all-targets -- --deny warnings: OK withOPENSSL_NO_VENDOR=1. Local-only issue: on this host, vendored OpenSSL fails atproviders/liblegacy.aunder the zccache C wrapper. No Rust changed here.soldr cargo build --locked --all-features: OK, with the same local workaround.--lib -- --skip ui): 21 passed.soldr rustup run, this host's orphaned soldr daemon refused the broker route ("soldr root ownership is busy").soldr cargo check --locked --libwith theci/target_features.pyfeature set: OK forx86_64-pc-windows-msvcand foraarch64-apple-darwin.🤖 Generated with Claude Code