@@ -135,6 +135,7 @@ jobs:
135135          - windows-latest 
136136          - macos-latest 
137137          - ubuntu-latest 
138+           - ubuntu-24.04-arm 
138139
139140    runs-on : ${{ matrix.os }} 
140141
@@ -198,9 +199,22 @@ jobs:
198199            etc/test-fixtures-windows-expected-failures-see-issue-1358.txt actual-failures.txt 
199200
200201   test-32bit :
201-     runs-on : ubuntu-latest 
202+     strategy :
203+       matrix :
204+         container-arch : [ i386, arm32v7 ] 
205+         include :
206+           - container-arch : i386 
207+             runner-arch : amd64 
208+             runner-os : ubuntu-latest 
209+             toolchain : stable-i686-unknown-linux-gnu 
210+           - container-arch : arm32v7 
211+             runner-arch : arm64 
212+             runner-os : ubuntu-24.04-arm 
213+             toolchain : stable-armv7-unknown-linux-gnueabihf 
202214
203-     container : i386/debian:stable-slim 
215+     runs-on : ${{ matrix.runner-os }} 
216+ 
217+     container : ${{ matrix.container-arch }}/debian:stable-slim 
204218
205219    steps :
206220      - name : Prerequisites 
@@ -213,17 +227,18 @@ jobs:
213227            git 
214228            jq 
215229            libssl-dev 
216-             libstdc++6:amd64   # To support external 64-bit Node.js for actions. 
230+             libstdc++6:${{ matrix.runner-arch }}   # To support external 64-bit Node.js for actions. 
217231            pkgconf 
218232          ) 
219-           dpkg --add-architecture amd64  
233+           dpkg --add-architecture ${{ matrix.runner-arch }}  
220234          apt-get update 
221235          apt-get install --no-install-recommends -y -- "${prerequisites[@]}" 
222236         shell : bash 
223237      - uses : actions/checkout@v4 
224238      - uses : dtolnay/rust-toolchain@stable 
225239        with :
226-           toolchain : stable-i686-unknown-linux-gnu   #  Otherwise it may misdetect based on the amd64 kernel.
240+           #  Avoid possible misdetection based on the 64-bit running kernel.
241+           toolchain : ${{ matrix.toolchain }} 
227242      - uses : Swatinem/rust-cache@v2 
228243      - uses : taiki-e/install-action@v2 
229244        with :
@@ -235,34 +250,6 @@ jobs:
235250          GIX_TEST_IGNORE_ARCHIVES : ' 1' 
236251        run : cargo nextest run --workspace --no-fail-fast 
237252
238-   test-32bit-cross :
239-     runs-on : ubuntu-latest 
240- 
241-     strategy :
242-       matrix :
243-         target : [ armv7-linux-androideabi ] 
244- 
245-     steps :
246-       - uses : actions/checkout@v4 
247-       - uses : dtolnay/rust-toolchain@stable 
248-       - uses : Swatinem/rust-cache@v2 
249-       - name : Install Rust 
250-         uses : dtolnay/rust-toolchain@master 
251-         with :
252-           toolchain : stable 
253-           targets : ${{ matrix.target }} 
254-       - name : Install cross 
255-         uses : taiki-e/install-action@v2 
256-         with :
257-           tool : cross 
258-       - name : check 
259-         run : cross check -p gix --target ${{ matrix.target }} 
260-       - name : Test (unit) 
261-         run : | 
262-           # Run some high-level unit tests that exercise various pure Rust code to ease building test binaries. 
263-           # We would prefer `-p gix`. But with `cross`, fixture scripts try to run amd64 `git` as an armv7 binary. 
264-           cross test -p gix-hashtable --target ${{ matrix.target }} 
265- 
266253  lint :
267254    runs-on : ubuntu-latest 
268255
@@ -438,7 +425,6 @@ jobs:
438425      - test-journey 
439426      - test-fast 
440427      - test-32bit 
441-       - test-32bit-cross 
442428      - lint 
443429      - cargo-deny 
444430      - check-packetline 
0 commit comments