diff --git a/.github/workflows/rust-napi-ci.yml b/.github/workflows/rust-napi-ci.yml index e28bbdf..cecdcac 100644 --- a/.github/workflows/rust-napi-ci.yml +++ b/.github/workflows/rust-napi-ci.yml @@ -115,6 +115,12 @@ jobs: - uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 with: targets: wasm32-wasip1-threads + - name: Ensure cargo on PATH + # dtolnay/rust-toolchain only prepends $CARGO_HOME/bin to PATH when it + # installs rustup itself. On runners with pre-installed rustup but no + # active toolchain, `cargo` resolves to a `rustup-init` symlink and + # fails with `unexpected argument 'metadata'`. + run: echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 - run: ${{ inputs.install-command }} - run: bun run build @@ -137,6 +143,10 @@ jobs: - uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 with: components: clippy, rustfmt + - name: Ensure cargo on PATH + # See note in `runtime-compat`: workaround for dtolnay/rust-toolchain + # not adding $CARGO_HOME/bin to PATH when rustup is pre-installed. + run: echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 with: shared-key: rust-checks @@ -207,6 +217,11 @@ jobs: uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 with: targets: ${{ matrix.settings.target }} + - if: inputs.build-changed == 'true' + name: Ensure cargo on PATH + # See note in `runtime-compat`: workaround for dtolnay/rust-toolchain + # not adding $CARGO_HOME/bin to PATH when rustup is pre-installed. + run: echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - if: inputs.build-changed == 'true' uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 with: