diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 1c60f966723..1e56cfc781a 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -53,7 +53,9 @@ jobs:
             fi
           done
       - name: Install Rust via Rustup
-        run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal
+        run: |
+          curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs |
+            sh -s -- -y --profile minimal
       - name: Add Rust tools to path
         run: echo "PATH=$HOME/.cargo/bin:$PATH" >> "$GITHUB_ENV"
       - name: Generate dependency tree
@@ -206,11 +208,11 @@ jobs:
           - container-arch: i386
             runner-arch: amd64
             runner-os: ubuntu-latest
-            toolchain: stable-i686-unknown-linux-gnu
+            host-triple: i686-unknown-linux-gnu
           - container-arch: arm32v7
             runner-arch: arm64
             runner-os: ubuntu-24.04-arm
-            toolchain: stable-armv7-unknown-linux-gnueabihf
+            host-triple: armv7-unknown-linux-gnueabihf
 
     runs-on: ${{ matrix.runner-os }}
 
@@ -235,10 +237,13 @@ jobs:
           apt-get install --no-install-recommends -y -- "${prerequisites[@]}"
         shell: bash
       - uses: actions/checkout@v4
-      - uses: dtolnay/rust-toolchain@stable
-        with:
-          # Avoid possible misdetection based on the 64-bit running kernel.
-          toolchain: ${{ matrix.toolchain }}
+      - name: Install Rust via Rustup
+        run: |
+          # Specify toolchain to avoid possible misdetection based on the 64-bit running kernel.
+          curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs |
+            sh -s -- -y --default-host ${{ matrix.host-triple }} --profile minimal
+      - name: Add Rust tools to path
+        run: echo "PATH=$HOME/.cargo/bin:$PATH" >> "$GITHUB_ENV"
       - uses: Swatinem/rust-cache@v2
       - uses: taiki-e/install-action@v2
         with:
@@ -390,7 +395,6 @@ jobs:
         cargo-deny-advisories
         wasm
         tests-pass
-        test-32bit
 
     defaults:
       run:
@@ -425,6 +429,7 @@ jobs:
       - test-journey
       - test-fast
       - test-fixtures-windows
+      - test-32bit
       - lint
       - cargo-deny
       - check-packetline