@@ -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