@@ -135,6 +135,7 @@ jobs:
135
135
- windows-latest
136
136
- macos-latest
137
137
- ubuntu-latest
138
+ - ubuntu-24.04-arm
138
139
139
140
runs-on : ${{ matrix.os }}
140
141
@@ -198,9 +199,22 @@ jobs:
198
199
etc/test-fixtures-windows-expected-failures-see-issue-1358.txt actual-failures.txt
199
200
200
201
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
202
214
203
- container : i386/debian:stable-slim
215
+ runs-on : ${{ matrix.runner-os }}
216
+
217
+ container : ${{ matrix.container-arch }}/debian:stable-slim
204
218
205
219
steps :
206
220
- name : Prerequisites
@@ -213,17 +227,18 @@ jobs:
213
227
git
214
228
jq
215
229
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.
217
231
pkgconf
218
232
)
219
- dpkg --add-architecture amd64
233
+ dpkg --add-architecture ${{ matrix.runner-arch }}
220
234
apt-get update
221
235
apt-get install --no-install-recommends -y -- "${prerequisites[@]}"
222
236
shell : bash
223
237
- uses : actions/checkout@v4
224
238
- uses : dtolnay/rust-toolchain@stable
225
239
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 }}
227
242
- uses : Swatinem/rust-cache@v2
228
243
- uses : taiki-e/install-action@v2
229
244
with :
@@ -235,34 +250,6 @@ jobs:
235
250
GIX_TEST_IGNORE_ARCHIVES : ' 1'
236
251
run : cargo nextest run --workspace --no-fail-fast
237
252
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
-
266
253
lint :
267
254
runs-on : ubuntu-latest
268
255
@@ -438,7 +425,6 @@ jobs:
438
425
- test-journey
439
426
- test-fast
440
427
- test-32bit
441
- - test-32bit-cross
442
428
- lint
443
429
- cargo-deny
444
430
- check-packetline
0 commit comments