From 57593de830f3719fb436ba0b9c3c2a6dde8cafdc Mon Sep 17 00:00:00 2001 From: Senorespecial Date: Mon, 22 Jun 2026 10:55:25 +0000 Subject: [PATCH] =?UTF-8?q?ci:=20SHA-pin=20Swatinem/rust-cache@v2.9.1=20+?= =?UTF-8?q?=20cache-on-failure:false=20+=20shared-cache:true=20Replaces=20?= =?UTF-8?q?the=20moving=20major=20tag=20`Swatinem/rust-cache@v2`=20with=20?= =?UTF-8?q?the=20SHA=20of=20the=20latest=20v2.x=20release=20(v2.9.1=20=3D?= =?UTF-8?q?=2023869a5b)=20and=20adds:=20-=20cache-on-failure:=20false=20?= =?UTF-8?q?=20=E2=80=93=20never=20persist=20a=20poisoned=20cache=20from=20?= =?UTF-8?q?a=20failed=20job;=20the=20=20=20=20=20=20=20=20=20=20=20=20=20?= =?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20warm-cache?= =?UTF-8?q?=20vector=20was=20the=20leading=20hypothesis=20for=20why=20=20?= =?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20?= =?UTF-8?q?=20=20=20=20=20=20=20PR=20#35=20kept=20failing=20identically=20?= =?UTF-8?q?across=20two=20clean=20=20=20=20=20=20=20=20=20=20=20=20=20=20?= =?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20runs=20(target?= =?UTF-8?q?=20triple=20in=20channel=20name).=20-=20shared-cache:=20true=20?= =?UTF-8?q?=20=20=20=20=20=20=E2=80=93=20reuse=20the=20main-branch=20cache?= =?UTF-8?q?=20for=20PR=20builds=20so=20warm=20=20=20=20=20=20=20=20=20=20?= =?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20cac?= =?UTF-8?q?hes=20start=20from=20a=20known-good=20baseline=20rather=20than?= =?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20?= =?UTF-8?q?=20=20=20=20=20=20=20=20=20a=20fresh=20per-PR=20reproduction.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This seals the cache layer leak that #34 (--locked) and #35 (@v1 + toolchain pin) alone did not. Cross-links: closes Octo-Protocol-org/Octo-Protocol#33 validates/refines #34 (Senorespecial:fix/ci/lockfile-locked) builds on #35 (Senorespecial:fix/ci/rust-toolchain-v1) --- .github/workflows/ci.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9496f9c..a27841a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,7 +40,18 @@ jobs: components: rustfmt, clippy - name: Cache cargo - uses: Swatinem/rust-cache@v2 + # SHA-pin to v2.9.1 (was @v2 — a moving major tag, so the action's behaviour + # could drift between runs). cache-on-failure: false prevents the cache layer + # from persisting a poisoned rustup state after a job failure, which was the + # suspected vector behind PR #35's persistent `target triple in channel name` + # failures on a clean second run. shared-cache: true lets PR builds reuse the + # main-branch cache so the warm cache starts from a known-good baseline rather + # than a per-PR reproduction. + # Supersedes part of #34 / #35; closes Octo-Protocol-org/Octo-Protocol#33. + uses: Swatinem/rust-cache@23869a5bd66c73db3c0ac40331f3206eb23791dc # v2.9.1 + with: + cache-on-failure: false + shared-cache: true - name: Format check run: cargo fmt --all -- --check