@@ -198,6 +198,42 @@ jobs:
198
198
test-32bit :
199
199
runs-on : ubuntu-latest
200
200
201
+ container : i386/debian:stable-slim
202
+
203
+ steps :
204
+ - name : Prerequisites
205
+ run : |
206
+ prerequisites=(
207
+ build-essential
208
+ ca-certificates
209
+ cmake
210
+ curl
211
+ git
212
+ jq
213
+ libssl-dev
214
+ libstdc++6:amd64 # To support external 64-bit Node.js for actions.
215
+ pkgconf
216
+ )
217
+ dpkg --add-architecture amd64
218
+ apt-get update
219
+ apt-get install --no-install-recommends -y -- "${prerequisites[@]}"
220
+ shell : bash
221
+ - uses : actions/checkout@v4
222
+ - uses : dtolnay/rust-toolchain@stable
223
+ with :
224
+ toolchain : stable-i686-unknown-linux-gnu # Otherwise it may misdetect based on the amd64 kernel.
225
+ - uses : Swatinem/rust-cache@v2
226
+ - uses : taiki-e/install-action@v2
227
+ with :
228
+ tool : nextest
229
+ - name : Make `system` scope nonempty for "GitInstallation" tests
230
+ run : git config --system gitoxide.imaginary.arbitraryVariable arbitraryValue
231
+ - name : Test (nextest)
232
+ run : cargo nextest run --workspace --no-fail-fast
233
+
234
+ test-32bit-cross :
235
+ runs-on : ubuntu-latest
236
+
201
237
strategy :
202
238
matrix :
203
239
target : [ armv7-linux-androideabi ]
@@ -211,15 +247,17 @@ jobs:
211
247
with :
212
248
toolchain : stable
213
249
targets : ${{ matrix.target }}
214
- - uses : taiki-e/install-action@v2
250
+ - name : Install cross
251
+ uses : taiki-e/install-action@v2
215
252
with :
216
253
tool : cross
217
254
- name : check
218
255
run : cross check -p gix --target ${{ matrix.target }}
219
256
- name : Test (unit)
220
- # run high-level unit tests that exercise a lot of code while being pure Rust to ease building test binaries.
221
- # TODO: figure out why `git` doesn't pick up environment configuration so build scripts fail when using `-p gix`.
222
- run : cross test -p gix-hashtable --target ${{ matrix.target }}
257
+ run : |
258
+ # Run some high-level unit tests that exercise various pure Rust code to ease building test binaries.
259
+ # We would prefer `-p gix`. But with `cross`, fixture scripts try to run amd64 `git` as an armv7 binary.
260
+ cross test -p gix-hashtable --target ${{ matrix.target }}
223
261
224
262
lint :
225
263
runs-on : ubuntu-latest
@@ -396,6 +434,7 @@ jobs:
396
434
- test-journey
397
435
- test-fast
398
436
- test-32bit
437
+ - test-32bit-cross
399
438
- lint
400
439
- cargo-deny
401
440
- check-packetline
0 commit comments