From 72ec4bf19d46c23341afb2012bd23f236b41fb59 Mon Sep 17 00:00:00 2001 From: prql-bot <107324867+prql-bot@users.noreply.github.com> Date: Thu, 14 May 2026 20:26:58 +0000 Subject: [PATCH 1/2] fix: disable cache-bin in rust-cache to fix macos-15 cargo The new macos-15 runner image causes Swatinem/rust-cache@v2 to restore a corrupted ~/.cargo/bin/cargo (resolves to rustup-init instead of the rustup proxy), breaking every subsequent cargo invocation with 'error: unexpected argument found / Usage: rustup-init'. Upstream-tracked at https://github.com/Swatinem/rust-cache/issues/341 with the workaround being cache-bin: false. Apply it to every rust-cache invocation in the repo so the bin directory is never restored from cache. Co-Authored-By: Claude --- .github/actions/build-prqlc-c/action.yaml | 4 ++++ .github/actions/build-prqlc/action.yaml | 4 ++++ .github/actions/tend-setup/action.yaml | 4 ++++ .github/actions/time-compilation/action.yaml | 4 ++++ .github/workflows/build-web.yaml | 4 ++++ .github/workflows/release.yaml | 4 ++++ .github/workflows/test-java.yaml | 4 ++++ .github/workflows/test-js.yaml | 4 ++++ .github/workflows/test-php.yaml | 4 ++++ .github/workflows/test-prqlc-c.yaml | 4 ++++ .github/workflows/test-rust.yaml | 4 ++++ 11 files changed, 44 insertions(+) diff --git a/.github/actions/build-prqlc-c/action.yaml b/.github/actions/build-prqlc-c/action.yaml index d24c9ba3708c..5749fc7f532e 100644 --- a/.github/actions/build-prqlc-c/action.yaml +++ b/.github/actions/build-prqlc-c/action.yaml @@ -46,6 +46,10 @@ runs: ${{ (github.ref == 'refs/heads/main') && contains(inputs.target, 'musl') }} shared-key: rust-${{ inputs.target }} + # Caching `~/.cargo/bin/` breaks the rustup `cargo`/`rustc` symlinks + # on the new macos-15 runner image — see + # https://github.com/Swatinem/rust-cache/issues/341. + cache-bin: "false" - if: runner.os == 'Linux' shell: bash diff --git a/.github/actions/build-prqlc/action.yaml b/.github/actions/build-prqlc/action.yaml index 0df0c6e1da99..1d06957f9033 100644 --- a/.github/actions/build-prqlc/action.yaml +++ b/.github/actions/build-prqlc/action.yaml @@ -45,6 +45,10 @@ runs: ${{ (github.ref == 'refs/heads/main') && contains(inputs.target, 'musl') }} shared-key: rust-${{ inputs.target }} + # Caching `~/.cargo/bin/` breaks the rustup `cargo`/`rustc` symlinks + # on the new macos-15 runner image — see + # https://github.com/Swatinem/rust-cache/issues/341. + cache-bin: "false" - if: runner.os == 'Linux' shell: bash diff --git a/.github/actions/tend-setup/action.yaml b/.github/actions/tend-setup/action.yaml index 3c7844787016..233136929f3b 100644 --- a/.github/actions/tend-setup/action.yaml +++ b/.github/actions/tend-setup/action.yaml @@ -34,6 +34,10 @@ runs: prefix-key: ${{ hashFiles('./Cargo.lock') }} shared-key: rust-x86_64-unknown-linux-gnu save-if: false + # Caching `~/.cargo/bin/` breaks the rustup `cargo`/`rustc` symlinks + # on the new macos-15 runner image — see + # https://github.com/Swatinem/rust-cache/issues/341. + cache-bin: "false" - run: | echo CARGO_TERM_COLOR=always >> $GITHUB_ENV diff --git a/.github/actions/time-compilation/action.yaml b/.github/actions/time-compilation/action.yaml index 9d24195a414d..1bfb7f1d438e 100644 --- a/.github/actions/time-compilation/action.yaml +++ b/.github/actions/time-compilation/action.yaml @@ -17,6 +17,10 @@ runs: with: prefix-key: ${{ env.version }}-${{ hashFiles('./Cargo.lock') }} save-if: ${{ github.ref == 'refs/heads/main' }} + # Caching `~/.cargo/bin/` breaks the rustup `cargo`/`rustc` symlinks + # on the new macos-15 runner image — see + # https://github.com/Swatinem/rust-cache/issues/341. + cache-bin: "false" # 'true' seems to require quotes (and using a bare `inputs.use_cache` # doesn't work); I'm really not sure why. There are some issues on the # interwebs around this, but I couldn't find one that explained it. diff --git a/.github/workflows/build-web.yaml b/.github/workflows/build-web.yaml index 3eb1c004c47c..e22189c34f68 100644 --- a/.github/workflows/build-web.yaml +++ b/.github/workflows/build-web.yaml @@ -49,6 +49,10 @@ jobs: save-if: ${{ github.ref == 'refs/heads/web' || github.ref == 'refs/heads/main' }} + # Caching `~/.cargo/bin/` breaks the rustup `cargo`/`rustc` symlinks + # on the new macos-15 runner image — see + # https://github.com/Swatinem/rust-cache/issues/341. + cache-bin: "false" - uses: go-task/setup-task@v2 with: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 1bcc55cee06c..0e2a60be5c82 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -351,6 +351,10 @@ jobs: # Share key with the `build-web` job shared-key: web save-if: false + # Caching `~/.cargo/bin/` breaks the rustup `cargo`/`rustc` symlinks + # on the new macos-15 runner image — see + # https://github.com/Swatinem/rust-cache/issues/341. + cache-bin: "false" # This is only required in order to have `cross-env` installed, since `npx # cross-env` doesn't seem to work in CI (https://github.com/PRQL/prql/pull/3728) diff --git a/.github/workflows/test-java.yaml b/.github/workflows/test-java.yaml index e252f505cf81..2e15add0b1be 100644 --- a/.github/workflows/test-java.yaml +++ b/.github/workflows/test-java.yaml @@ -43,6 +43,10 @@ jobs: prefix-key: ${{ env.version }}-${{ env.cargo_lock_hash }} save-if: ${{ github.ref == 'refs/heads/main' }} shared-key: lib + # Caching `~/.cargo/bin/` breaks the rustup `cargo`/`rustc` symlinks + # on the new macos-15 runner image — see + # https://github.com/Swatinem/rust-cache/issues/341. + cache-bin: "false" - name: Maven test working-directory: prqlc/bindings/java/java/ run: ./mvnw test diff --git a/.github/workflows/test-js.yaml b/.github/workflows/test-js.yaml index 0a3778eec32e..280a8519e614 100644 --- a/.github/workflows/test-js.yaml +++ b/.github/workflows/test-js.yaml @@ -62,6 +62,10 @@ jobs: # we're out of cache space. shared-key: web save-if: false + # Caching `~/.cargo/bin/` breaks the rustup `cargo`/`rustc` symlinks + # on the new macos-15 runner image — see + # https://github.com/Swatinem/rust-cache/issues/341. + cache-bin: "false" - run: npm cit working-directory: prqlc/bindings/js diff --git a/.github/workflows/test-php.yaml b/.github/workflows/test-php.yaml index 70657c662c93..775eb61a1eb3 100644 --- a/.github/workflows/test-php.yaml +++ b/.github/workflows/test-php.yaml @@ -31,5 +31,9 @@ jobs: prefix-key: ${{ env.version }}-${{ hashFiles('./Cargo.lock') }} save-if: ${{ github.ref == 'refs/heads/main' }} shared-key: lib + # Caching `~/.cargo/bin/` breaks the rustup `cargo`/`rustc` symlinks + # on the new macos-15 runner image — see + # https://github.com/Swatinem/rust-cache/issues/341. + cache-bin: "false" - run: task build-php - run: task test-php diff --git a/.github/workflows/test-prqlc-c.yaml b/.github/workflows/test-prqlc-c.yaml index f8a223255e80..842cef2ff8e8 100644 --- a/.github/workflows/test-prqlc-c.yaml +++ b/.github/workflows/test-prqlc-c.yaml @@ -24,6 +24,10 @@ jobs: prefix-key: ${{ env.version }}-${{ hashFiles('./Cargo.lock') }} save-if: ${{ github.ref == 'refs/heads/main' }} shared-key: lib + # Caching `~/.cargo/bin/` breaks the rustup `cargo`/`rustc` symlinks + # on the new macos-15 runner image — see + # https://github.com/Swatinem/rust-cache/issues/341. + cache-bin: "false" - name: Build uses: clechasseur/rs-cargo@v4 with: diff --git a/.github/workflows/test-rust.yaml b/.github/workflows/test-rust.yaml index a554efc0b6aa..878e7323bc19 100644 --- a/.github/workflows/test-rust.yaml +++ b/.github/workflows/test-rust.yaml @@ -95,6 +95,10 @@ jobs: # the comma seemed over the top. save-if: ${{ github.ref == 'refs/heads/main' && inputs.features != '' }} + # Caching `~/.cargo/bin/` breaks the rustup `cargo`/`rustc` symlinks + # on the new macos-15 runner image — see + # https://github.com/Swatinem/rust-cache/issues/341. + cache-bin: "false" - uses: actions/setup-python@v6 # python isn't natively installed on macos-15, so we need to install it if: ${{ inputs.os == 'macos-15' }} From 99840badbac2452e8608915f6f4166fa559124d1 Mon Sep 17 00:00:00 2001 From: prql-bot <107324867+prql-bot@users.noreply.github.com> Date: Thu, 14 May 2026 20:31:24 +0000 Subject: [PATCH 2/2] fix: also disable cache-bin in remaining tests.yaml jobs Three ubuntu-24.04 rust-cache sites in tests.yaml were missed in the initial pass (check-links-book, measure-code-cov, test-deps-min-versions). The bug currently only fires on macos-15, but the PR's stated intent is to disable cache-bin everywhere for consistency. Co-Authored-By: Claude --- .github/workflows/tests.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 5f2454287774..95f01b5025b7 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -433,6 +433,10 @@ jobs: shared-key: web # Created by `build-web` save-if: false + # Caching `~/.cargo/bin/` breaks the rustup `cargo`/`rustc` symlinks + # on the new macos-15 runner image — see + # https://github.com/Swatinem/rust-cache/issues/341. + cache-bin: "false" # Only build the book — rather than `build-web` which also builds the playground - name: Build the mdbook run: mdbook build web/book/ @@ -457,6 +461,10 @@ jobs: with: prefix-key: ${{ env.version }}-${{ hashFiles('./Cargo.lock') }} save-if: ${{ github.ref == 'refs/heads/main' }} + # Caching `~/.cargo/bin/` breaks the rustup `cargo`/`rustc` symlinks + # on the new macos-15 runner image — see + # https://github.com/Swatinem/rust-cache/issues/341. + cache-bin: "false" # Ensure nothing remains from caching - run: cargo llvm-cov clean --workspace - run: @@ -595,6 +603,10 @@ jobs: with: prefix-key: ${{ env.version }}-${{ hashFiles('./Cargo.lock') }} save-if: ${{ github.ref == 'refs/heads/main' }} + # Caching `~/.cargo/bin/` breaks the rustup `cargo`/`rustc` symlinks + # on the new macos-15 runner image — see + # https://github.com/Swatinem/rust-cache/issues/341. + cache-bin: "false" - name: Verify minimum rust version run: cargo minimal-versions test --direct