11on :
2- push :
3- branches : [ master ]
42 pull_request :
5- branches : [ master ]
3+ merge_group :
64
75name : Continuous integration
86
1311 RUSTFLAGS : " -D warnings"
1412
1513jobs :
14+ clippy :
15+ runs-on : ubuntu-latest
16+ strategy :
17+ matrix :
18+ rust :
19+ - beta
20+ name : clippy/${{ matrix.rust }}
21+ steps :
22+ - uses : actions/checkout@v4
23+ - uses : dtolnay/rust-toolchain@master
24+ with :
25+ toolchain : ${{ matrix.rust }}
26+ components : clippy
27+ - uses : Swatinem/rust-cache@v2
28+ - run : cargo clippy --features docs
1629 tests :
1730 runs-on : ubuntu-latest
1831 strategy :
@@ -23,57 +36,52 @@ jobs:
2336 - nightly
2437 - 1.51.0 # MSRV
2538
39+ name : tests/${{ matrix.rust }}
2640 steps :
27- - uses : actions/checkout@v2
28- - uses : actions-rs/ toolchain@v1
41+ - uses : actions/checkout@v4
42+ - uses : dtolnay/rust- toolchain@master
2943 with :
30- profile : minimal
3144 toolchain : ${{ matrix.rust }}
32- override : true
45+ - uses : Swatinem/rust-cache@v2
3346 - name : Install openblas
3447 run : sudo apt-get install libopenblas-dev gfortran
3548 - run : ./scripts/all-tests.sh "$FEATURES" ${{ matrix.rust }}
3649
3750 cross_test :
51+ if : ${{ github.event_name == 'merge_group' }}
3852 runs-on : ubuntu-latest
3953 strategy :
4054 matrix :
4155 include :
4256 - rust : stable
43- target : mips -unknown-linux-gnu
57+ target : s390x -unknown-linux-gnu
4458 - rust : stable
4559 target : i686-unknown-linux-gnu
4660
61+ name : cross_test/${{ matrix.target }}/${{ matrix.rust }}
4762 steps :
48- - uses : actions/checkout@v2
49- - uses : actions-rs/ toolchain@v1
63+ - uses : actions/checkout@v4
64+ - uses : dtolnay/rust- toolchain@master
5065 with :
51- profile : minimal
5266 toolchain : ${{ matrix.rust }}
53- target : ${{ matrix.target }}
54- override : true
55- - name : Cache cargo plugins
56- uses : actions/cache@v1
57- with :
58- path : ~/.cargo/bin/
59- key : ${{ runner.os }}-cargo-plugins
67+ targets : ${{ matrix.target }}
68+ - uses : Swatinem/rust-cache@v2
6069 - name : Install cross
61- run : cargo install cross || true
70+ run : cargo install cross
6271 - run : ./scripts/cross-tests.sh "docs" ${{ matrix.rust }} ${{ matrix.target }}
6372
64- clippy :
73+ conclusion :
74+ needs :
75+ - clippy
76+ - tests
77+ - cross_test
78+ if : always()
6579 runs-on : ubuntu-latest
66- strategy :
67- matrix :
68- rust :
69- - beta
7080 steps :
71- - uses : actions/checkout@v2
72- - uses : actions-rs/toolchain@v1
73- with :
74- profile : minimal
75- toolchain : ${{ matrix.rust }}
76- override : true
77- components : clippy
78- - run : cargo clippy --features docs
79-
81+ - name : Result
82+ run : |
83+ jq -C <<< "${needs}"
84+ # Check if all needs were successful or skipped.
85+ "$(jq -r 'all(.result as $result | (["success", "skipped"] | contains([$result])))' <<< "${needs}")"
86+ env :
87+ needs : ${{ toJson(needs) }}
0 commit comments