@@ -198,6 +198,42 @@ jobs:
198198 test-32bit :
199199 runs-on : ubuntu-latest
200200
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+
201237 strategy :
202238 matrix :
203239 target : [ armv7-linux-androideabi ]
@@ -211,15 +247,17 @@ jobs:
211247 with :
212248 toolchain : stable
213249 targets : ${{ matrix.target }}
214- - uses : taiki-e/install-action@v2
250+ - name : Install cross
251+ uses : taiki-e/install-action@v2
215252 with :
216253 tool : cross
217254 - name : check
218255 run : cross check -p gix --target ${{ matrix.target }}
219256 - 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 }}
223261
224262 lint :
225263 runs-on : ubuntu-latest
@@ -396,6 +434,7 @@ jobs:
396434 - test-journey
397435 - test-fast
398436 - test-32bit
437+ - test-32bit-cross
399438 - lint
400439 - cargo-deny
401440 - check-packetline
0 commit comments