11name : ci
22
3- env :
4- CARGO_TERM_COLOR : always
5- CLICOLOR : 1
6-
73on :
84 push :
95 branches :
1713 - main
1814 workflow_dispatch :
1915
16+ env :
17+ CARGO_TERM_COLOR : always
18+ CLICOLOR : 1
19+
2020jobs :
2121 pure-rust-build :
2222 runs-on : ubuntu-latest
23+
2324 container : debian:stable-slim
25+
2426 steps :
2527 - uses : actions/checkout@v4
2628 - name : Prerequisites
@@ -47,13 +49,13 @@ jobs:
4749
4850 test :
4951 runs-on : ubuntu-latest
52+
5053 steps :
5154 - uses : actions/checkout@v4
5255 - uses : dtolnay/rust-toolchain@stable
5356 - uses : Swatinem/rust-cache@v2
5457 - name : Setup dependencies
55- run :
56- sudo apt-get install -y --no-install-recommends liblzma-dev tree
58+ run : sudo apt-get install -y --no-install-recommends liblzma-dev tree
5759 - uses : extractions/setup-just@v2
5860 - uses : taiki-e/install-action@v2
5961 with :
7173 - windows-latest
7274 - macos-latest
7375 - ubuntu-latest
76+
7477 runs-on : ${{ matrix.os }}
78+
7579 steps :
7680 - uses : actions/checkout@v4
7781 - uses : dtolnay/rust-toolchain@stable
97101
98102 test-fixtures-windows :
99103 runs-on : windows-latest
104+
100105 steps :
101106 - uses : actions/checkout@v4
102107 - uses : dtolnay/rust-toolchain@stable
@@ -133,9 +138,11 @@ jobs:
133138
134139 test-32bit :
135140 runs-on : ubuntu-latest
141+
136142 strategy :
137143 matrix :
138144 target : [ armv7-linux-androideabi ]
145+
139146 steps :
140147 - uses : actions/checkout@v4
141148 - uses : dtolnay/rust-toolchain@stable
@@ -157,6 +164,7 @@ jobs:
157164
158165 lint :
159166 runs-on : ubuntu-latest
167+
160168 steps :
161169 - uses : actions/checkout@v4
162170 - uses : dtolnay/rust-toolchain@master
@@ -181,6 +189,7 @@ jobs:
181189
182190 cargo-deny :
183191 runs-on : ubuntu-latest
192+
184193 strategy :
185194 matrix :
186195 checks :
@@ -198,11 +207,15 @@ jobs:
198207
199208 wasm :
200209 name : WebAssembly
210+
201211 runs-on : ubuntu-latest
212+
202213 continue-on-error : true
214+
203215 strategy :
204216 matrix :
205217 target : [ wasm32-unknown-unknown, wasm32-wasi ]
218+
206219 steps :
207220 - uses : actions/checkout@master
208221 - name : Install Rust
@@ -230,10 +243,13 @@ jobs:
230243 # However, when changes are made to `etc/copy-packetline.sh`, re-enable the other platforms for testing.
231244 # - macos-latest
232245 # - windows-latest
246+
233247 runs-on : ${{ matrix.os }}
248+
234249 defaults :
235250 run :
236251 shell : bash
252+
237253 steps :
238254 - uses : actions/checkout@v4
239255 - name : Check that working tree is initially clean
@@ -252,6 +268,7 @@ jobs:
252268 # Dummy job to have a stable name for the "all tests pass" requirement
253269 tests-pass :
254270 name : Tests pass
271+
255272 needs :
256273 - pure-rust-build
257274 - test
@@ -261,8 +278,11 @@ jobs:
261278 - cargo-deny
262279 - wasm
263280 - check-packetline
281+
264282 if : always() # always run even if dependencies fail
283+
265284 runs-on : ubuntu-latest
285+
266286 steps :
267287 # fail if ANY dependency has failed or cancelled
268288 - if : " contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')"
0 commit comments