From 8976b33a8eff9c37af5e451e7eed1eef75d3cf16 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Wed, 11 Feb 2026 15:21:25 -0700 Subject: [PATCH] Fix more sccache problems on windows runners for external PRs (#48980) Closes #ISSUE - [ ] Tests or screenshots needed? - [ ] Code Reviewed - [ ] Manual QA Release Notes: - N/A --- .github/workflows/release.yml | 4 ++-- .github/workflows/release_nightly.yml | 4 ++-- .github/workflows/run_tests.yml | 4 ++-- tooling/xtask/src/tasks/workflows/steps.rs | 7 +++++-- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e7782fac65571dba299390a26e3a23dcca819dc5..de1572da86ee3f2b1c4cc778118c2fd5a04d2a8d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -159,7 +159,7 @@ jobs: run: cargo nextest run --workspace --no-fail-fast shell: pwsh - name: steps::show_sccache_stats - run: '& $env:RUSTC_WRAPPER --show-stats; exit 0' + run: if ($env:RUSTC_WRAPPER) { & $env:RUSTC_WRAPPER --show-stats }; exit 0 shell: pwsh - name: steps::cleanup_cargo_config if: always() @@ -278,7 +278,7 @@ jobs: run: ./script/clippy.ps1 shell: pwsh - name: steps::show_sccache_stats - run: '& $env:RUSTC_WRAPPER --show-stats; exit 0' + run: if ($env:RUSTC_WRAPPER) { & $env:RUSTC_WRAPPER --show-stats }; exit 0 shell: pwsh timeout-minutes: 60 check_scripts: diff --git a/.github/workflows/release_nightly.yml b/.github/workflows/release_nightly.yml index 5645fb987d488854c4f719f2afad45ca50ba1f79..3770d26dcf9242aba140a6a30112e4c65980c4b9 100644 --- a/.github/workflows/release_nightly.yml +++ b/.github/workflows/release_nightly.yml @@ -67,7 +67,7 @@ jobs: run: cargo nextest run --workspace --no-fail-fast shell: pwsh - name: steps::show_sccache_stats - run: '& $env:RUSTC_WRAPPER --show-stats; exit 0' + run: if ($env:RUSTC_WRAPPER) { & $env:RUSTC_WRAPPER --show-stats }; exit 0 shell: pwsh - name: steps::cleanup_cargo_config if: always() @@ -110,7 +110,7 @@ jobs: run: ./script/clippy.ps1 shell: pwsh - name: steps::show_sccache_stats - run: '& $env:RUSTC_WRAPPER --show-stats; exit 0' + run: if ($env:RUSTC_WRAPPER) { & $env:RUSTC_WRAPPER --show-stats }; exit 0 shell: pwsh timeout-minutes: 60 bundle_linux_aarch64: diff --git a/.github/workflows/run_tests.yml b/.github/workflows/run_tests.yml index e218dc64389f883dd2385dec545f72170fce6934..f504ea3357d8453970fb916f3ac118457b22d7bd 100644 --- a/.github/workflows/run_tests.yml +++ b/.github/workflows/run_tests.yml @@ -176,7 +176,7 @@ jobs: run: ./script/clippy.ps1 shell: pwsh - name: steps::show_sccache_stats - run: '& $env:RUSTC_WRAPPER --show-stats; exit 0' + run: if ($env:RUSTC_WRAPPER) { & $env:RUSTC_WRAPPER --show-stats }; exit 0 shell: pwsh timeout-minutes: 60 clippy_linux: @@ -303,7 +303,7 @@ jobs: run: cargo nextest run --workspace --no-fail-fast${{ needs.orchestrate.outputs.changed_packages && format(' -E "{0}"', needs.orchestrate.outputs.changed_packages) || '' }} shell: pwsh - name: steps::show_sccache_stats - run: '& $env:RUSTC_WRAPPER --show-stats; exit 0' + run: if ($env:RUSTC_WRAPPER) { & $env:RUSTC_WRAPPER --show-stats }; exit 0 shell: pwsh - name: steps::cleanup_cargo_config if: always() diff --git a/tooling/xtask/src/tasks/workflows/steps.rs b/tooling/xtask/src/tasks/workflows/steps.rs index 7c31aec65653e1f9258b60af2a95bbe748335a22..8489208f8993e471e01e7bca0c692090f988f887 100644 --- a/tooling/xtask/src/tasks/workflows/steps.rs +++ b/tooling/xtask/src/tasks/workflows/steps.rs @@ -232,8 +232,11 @@ pub fn setup_sccache(platform: Platform) -> Step { pub fn show_sccache_stats(platform: Platform) -> Step { match platform { // Use $env:RUSTC_WRAPPER (absolute path) because GITHUB_PATH changes - // don't take effect until the next step in PowerShell - Platform::Windows => named::pwsh("& $env:RUSTC_WRAPPER --show-stats; exit 0"), + // don't take effect until the next step in PowerShell. + // Check if RUSTC_WRAPPER is set first (it won't be for fork PRs without secrets). + Platform::Windows => { + named::pwsh("if ($env:RUSTC_WRAPPER) { & $env:RUSTC_WRAPPER --show-stats }; exit 0") + } Platform::Linux | Platform::Mac => named::bash("sccache --show-stats || true"), } }