ci: SHA-pin Swatinem/rust-cache + cache-on-failure:false + shared-cache:true#36
Merged
Emmyt24 merged 1 commit intoJun 28, 2026
Merged
Conversation
…red-cache:true
Replaces the moving major tag `Swatinem/rust-cache@v2` with the SHA of the latest
v2.x release (v2.9.1 = 23869a5b) and adds:
- cache-on-failure: false – never persist a poisoned cache from a failed job; the
warm-cache vector was the leading hypothesis for why
PR Octo-Protocol-org#35 kept failing identically across two clean
runs (target triple in channel name).
- shared-cache: true – reuse the main-branch cache for PR builds so warm
caches start from a known-good baseline rather than
a fresh per-PR reproduction.
This seals the cache layer leak that Octo-Protocol-org#34 (--locked) and Octo-Protocol-org#35 (@v1 + toolchain
pin) alone did not. Cross-links:
closes Octo-Protocol-org#33
validates/refines Octo-Protocol-org#34 (Senorespecial:fix/ci/lockfile-locked)
builds on Octo-Protocol-org#35 (Senorespecial:fix/ci/rust-toolchain-v1)
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.
Summary
Replaces the moving major tag
Swatinem/rust-cache@v2with the SHA of v2.9.1 (23869a5b) and adds:cache-on-failure: false– never persist a poisoned cache from a failed job; the warm-cache vector was the leading hypothesis for why PR ci: pin rust-toolchain action to @v1 and pass toolchain: 1.84.1 explicitly #35 kept failing identically across two clean runs (failing withtarget triple in channel name).shared-cache: true– reuse the main-branch cache for PR builds so warm caches start from a known-good baseline rather than a fresh per-PR reproduction.Diagnostic Eviction
After #34 (--locked) and #35 (dtolnay/rust-toolchain@v1 + with.toolchain:1.84.1), PR #35\u2019s CI still produces the same canonical error across two consecutive clean runs (runs
27946370482and27946703145). That rules out a pure transient cache hit on the toolchain action. The remaining surface is the cache layer itself persisting a poisoned rustup state across jobs and PRs.This PR pins the cache action to a known-good release SHA and turns off the failure-time cache save so a broken cache can no longer survive between jobs.
Companion PRs
Senorespecial:fix/ci/rust-toolchain-v1) – toolchain-action pinSenorespecial:fix/ci/lockfile-locked) –--lockedsemantics were never actually exercised in CI due to this same upstream blocker; once the cache is clean they should run end-to-endOcto-Protocol-org/Octo-Protocol#33) – the diagnosis captured thereVerification
Once this merges, PR #34 and PR #35 should flip green end-to-end, which would finally exercise
cargo test --workspace --lockedandcargo clippy --workspace --all-targets --locked -- -D warningsin CI (the lockfile-parity gap). PR #31 (feat/dashboard/sponsor-card) is also gated on the same upstream CI blocker.Risk
23869a5b(v2.9.1) locks the cache action\u2019s behaviour to a known-good release, eliminating the moving-major-tag drift risk that bit ci: pin rust-toolchain action to @v1 and pass toolchain: 1.84.1 explicitly #35.shared-cache: trueincreases cache hit rate but also broadens the keys; combined withcache-on-failure: falsewe\u2019re protected from poisoning but PRs will now share the main-branch cache, which is the intended behaviour for fast PR builds.