From ec4fcb16587d3c3b75b0409c4fa17b79f0574fe6 Mon Sep 17 00:00:00 2001 From: Guillaume Lagrange Date: Sat, 16 May 2026 11:36:49 -0700 Subject: [PATCH] ci: fix macOS rustup cache corruption in install-rust action Switch back to `rustup toolchain install` (the rustup-documented way to install the toolchain pinned by rust-toolchain.toml across rustup 1.28+ versions) and disable `cache-bin` on macOS. Caching ~/.cargo/bin caused macOS jobs to fail with `error: unexpected argument 'fmt' found / Usage: rustup-init[EXE]`: rust-cache was restoring a stale cargo proxy from a runner with a different rustup version, overwriting the proxy installed in this run and leaving cargo behaving like rustup-init. Co-Authored-By: Claude --- .github/actions/install-rust/action.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/actions/install-rust/action.yml b/.github/actions/install-rust/action.yml index 04bee8af..f4d9168e 100644 --- a/.github/actions/install-rust/action.yml +++ b/.github/actions/install-rust/action.yml @@ -10,9 +10,14 @@ runs: steps: - name: Install rust-toolchain.toml shell: bash - run: rustup show + run: rustup toolchain install - name: Install additional rustup components if: inputs.components != '' shell: bash run: echo "${{ inputs.components }}" | tr ',' '\n' | xargs rustup component add - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2 + with: + # Avoid caching ~/.cargo/bin on macOS — restoring it on a runner with a + # different rustup version overwrites the cargo proxy with a stale + # rustup-init, breaking `cargo fmt`/`clippy`/etc. + cache-bin: ${{ runner.os != 'macOS' }}