From 83a73fb08e2d3e2167b0d6a932ccfadcaaa2863e Mon Sep 17 00:00:00 2001 From: Davis Vaughan Date: Mon, 30 Mar 2026 16:09:51 -0400 Subject: [PATCH 1/2] Use rustup for toolchain installation So it always respects `rust-toolchain.toml` --- .github/workflows/build-linux.yml | 15 ++++++++------- .github/workflows/build-mac.yml | 15 ++++++++------- .github/workflows/build-windows.yml | 15 ++++++++------- .github/workflows/test-code.yml | 6 ++++-- .github/workflows/test-linux.yml | 11 +++++------ .github/workflows/test-mac.yml | 11 +++++------ .github/workflows/test-windows.yml | 11 +++++------ 7 files changed, 43 insertions(+), 41 deletions(-) diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index dc92d6ab..73797537 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -27,14 +27,15 @@ jobs: steps: - uses: actions/checkout@v4 - - name: "Install rust" - uses: dtolnay/rust-toolchain@master - with: - toolchain: ${{ env.RUST_TOOLCHAIN }} - targets: ${{ matrix.this.target }} + - name: "Install rust toolchain (rust-toolchain.toml)" + run: | + rustup toolchain install + rustup show - - name: "Report rust toolchain" - run: rustup show + - name: "Install rust target" + run: | + rustup target add ${{ matrix.this.target }} + rustup target list --installed - name: "Build" run: cargo build --release --locked --target ${{ matrix.this.target }} -p air diff --git a/.github/workflows/build-mac.yml b/.github/workflows/build-mac.yml index 94244d55..79720105 100644 --- a/.github/workflows/build-mac.yml +++ b/.github/workflows/build-mac.yml @@ -20,14 +20,15 @@ jobs: steps: - uses: actions/checkout@v4 - - name: "Install rust" - uses: dtolnay/rust-toolchain@master - with: - toolchain: ${{ env.RUST_TOOLCHAIN }} - targets: ${{ matrix.this.target }} + - name: "Install rust toolchain (rust-toolchain.toml)" + run: | + rustup toolchain install + rustup show - - name: "Report rust toolchain" - run: rustup show + - name: "Install rust target" + run: | + rustup target add ${{ matrix.this.target }} + rustup target list --installed - name: "Build" run: cargo build --release --locked --target ${{ matrix.this.target }} -p air diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index a0a15fdf..46f89d94 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -20,14 +20,15 @@ jobs: steps: - uses: actions/checkout@v4 - - name: "Install rust" - uses: dtolnay/rust-toolchain@master - with: - toolchain: ${{ env.RUST_TOOLCHAIN }} - targets: ${{ matrix.this.target }} + - name: "Install rust toolchain (rust-toolchain.toml)" + run: | + rustup toolchain install + rustup show - - name: "Report rust toolchain" - run: rustup show + - name: "Install rust target" + run: | + rustup target add ${{ matrix.this.target }} + rustup target list --installed - name: "Build" run: cargo build --release --locked --target ${{ matrix.this.target }} -p air diff --git a/.github/workflows/test-code.yml b/.github/workflows/test-code.yml index ceeff386..3692353b 100644 --- a/.github/workflows/test-code.yml +++ b/.github/workflows/test-code.yml @@ -22,8 +22,10 @@ jobs: run: | sudo apt-get update - - name: Report rust toolchain - run: rustup show + - name: Install rust toolchain (rust-toolchain.toml) + run: | + rustup toolchain install + rustup show - name: Rust cache uses: Swatinem/rust-cache@v2 diff --git a/.github/workflows/test-linux.yml b/.github/workflows/test-linux.yml index e0e8a454..11d1805d 100644 --- a/.github/workflows/test-linux.yml +++ b/.github/workflows/test-linux.yml @@ -23,6 +23,7 @@ jobs: timeout-minutes: 30 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + RUSTUP_TOOLCHAIN: ${{ matrix.config.rust == 'nightly' && 'nightly' || '' }} steps: - uses: actions/checkout@v4 @@ -30,12 +31,10 @@ jobs: run: | sudo apt-get update - - name: Install nightly rust - uses: dtolnay/rust-toolchain@nightly - if: matrix.config.rust == 'nightly' - - - name: Report rust toolchain - run: rustup show + - name: Install rust toolchain (rust-toolchain.toml / RUSTUP_TOOLCHAIN) + run: | + rustup toolchain install + rustup show - name: Rust cache uses: Swatinem/rust-cache@v2 diff --git a/.github/workflows/test-mac.yml b/.github/workflows/test-mac.yml index f91f831a..76d5a5e0 100644 --- a/.github/workflows/test-mac.yml +++ b/.github/workflows/test-mac.yml @@ -7,20 +7,19 @@ on: jobs: macos: runs-on: macos-latest - name: "Rust: ${{ matrix.config.rust }}" + name: "Rust: stable" strategy: fail-fast: false - matrix: - config: - - { rust: 'stable' } timeout-minutes: 30 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v4 - - name: Report rust toolchain - run: rustup show + - name: Install rust toolchain (rust-toolchain.toml) + run: | + rustup toolchain install + rustup show - name: Rust cache uses: Swatinem/rust-cache@v2 diff --git a/.github/workflows/test-windows.yml b/.github/workflows/test-windows.yml index 35c604b4..59757c43 100644 --- a/.github/workflows/test-windows.yml +++ b/.github/workflows/test-windows.yml @@ -7,20 +7,19 @@ on: jobs: windows: runs-on: windows-latest - name: "Rust: ${{ matrix.config.rust }}" + name: "Rust: stable" strategy: fail-fast: false - matrix: - config: - - { rust: 'stable' } timeout-minutes: 30 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v4 - - name: Report rust toolchain - run: rustup show + - name: Install rust toolchain (rust-toolchain.toml) + run: | + rustup toolchain install + rustup show - name: Rust cache uses: Swatinem/rust-cache@v2 From d344fa04c82bc5343e4513e82fa8e8676d610dd2 Mon Sep 17 00:00:00 2001 From: Davis Vaughan Date: Mon, 30 Mar 2026 17:29:04 -0400 Subject: [PATCH 2/2] Install rustup in the docker container --- .github/workflows/build-linux.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index 73797537..85825c4e 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -27,6 +27,12 @@ jobs: steps: - uses: actions/checkout@v4 + # Docker container doesn't come with rustup + - name: "Install rustup" + run: | + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain none + echo "$HOME/.cargo/bin" >> $GITHUB_PATH + - name: "Install rust toolchain (rust-toolchain.toml)" run: | rustup toolchain install