3030 - uses : actions/checkout@v4
3131 - name : Prerequisites
3232 run : |
33+ prerequisites=(
34+ ca-certificates
35+ curl
36+ gcc # rustc calls gcc to invoke the linker.
37+ libc-dev # rustc, in the toolchain we are using, dynamically links to the system libc.
38+ )
3339 apt-get update
34- apt-get install --no-install-recommends -y ca-certificates curl gcc libc-dev # gcc is required as OS abstraction
40+ apt-get install --no-install-recommends -y -- "${prerequisites[@]}"
41+ shell : bash
3542 - name : Verify environment is sufficiently minimal for the test
3643 run : |
3744 set -x
@@ -84,15 +91,14 @@ jobs:
8491 - uses : Swatinem/rust-cache@v2
8592 - name : Setup dependencies (macos)
8693 if : startsWith(matrix.os, 'macos')
87- run :
88- brew install tree openssl gnu-sed
94+ run : brew install tree openssl gnu-sed
8995 - name : " cargo check default features"
9096 if : startsWith(matrix.os, 'windows')
9197 run : cargo check --workspace --bins --examples
9298 - uses : taiki-e/install-action@v2
9399 with :
94100 tool : nextest
95- - name : " Test (nextest)"
101+ - name : Test (nextest)
96102 env :
97103 GIX_TEST_CREATE_ARCHIVES_EVEN_ON_CI : ' 1'
98104 run : cargo nextest run --workspace --no-fail-fast
@@ -157,9 +163,9 @@ jobs:
157163 - uses : taiki-e/install-action@v2
158164 with :
159165 tool : cross
160- - name : " check"
166+ - name : check
161167 run : cross check -p gix --target ${{ matrix.target }}
162- - name : " Test (unit)"
168+ - name : Test (unit)
163169 # run high-level unit tests that exercise a lot of code while being pure Rust to ease building test binaries.
164170 # TODO: figure out why `git` doesn't pick up environment configuration so build scripts fail when using `-p gix`.
165171 run : cross test -p gix-hashtable --target ${{ matrix.target }}
@@ -275,7 +281,7 @@ jobs:
275281
276282 defaults :
277283 run :
278- shell : bash
284+ shell : bash # Use bash even on Windows, if we ever reenable windows-latest for testing.
279285
280286 steps :
281287 - uses : actions/checkout@v4
@@ -327,7 +333,7 @@ jobs:
327333 - name : Each job must block PRs or be declared not to
328334 run : |
329335 sort -m blocking-jobs.txt expected-nonblocking-jobs.txt |
330- diff --color=always -U1000 -- - all-jobs.txt
336+ diff --color=always -U1000 - all-jobs.txt
331337
332338 # Dummy job to have a stable name for the "all tests pass" requirement
333339 tests-pass :
@@ -349,7 +355,7 @@ jobs:
349355
350356 steps :
351357 - name : Fail if ANY dependency has failed or cancelled
352- if : " contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')"
358+ if : contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')
353359 run : exit 1
354360 - name : OK
355361 run : exit 0
0 commit comments