File tree Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Original file line number Diff line number Diff line change 1+ on :
2+ push :
3+ branches : [ main ]
4+ pull_request :
5+ branches : [ main ]
6+ merge_group :
7+
8+ name : CI
9+
10+ env :
11+ CARGO_TERM_COLOR : always
12+ CARGO_INCREMENTAL : 0
13+
14+ jobs :
15+ tests :
16+ runs-on : ubuntu-latest
17+ strategy :
18+ matrix :
19+ include :
20+ - rust : 1.6.0 # MSRV
21+ - rust : stable
22+ - rust : beta
23+ - rust : nightly
24+
25+ steps :
26+ - uses : actions/checkout@v4
27+ - uses : dtolnay/rust-toolchain@master
28+ with :
29+ toolchain : ${{ matrix.rust }}
30+ - name : Tests
31+ run : |
32+ cargo build --verbose
33+ cargo test --verbose
34+
35+ # One job that "summarizes" the success state of this pipeline. This can then be added to branch
36+ # protection, rather than having to add each job separately.
37+ success :
38+ name : Success
39+ runs-on : ubuntu-latest
40+ needs : [tests]
41+ # Github branch protection is exceedingly silly and treats "jobs skipped because a dependency
42+ # failed" as success. So we have to do some contortions to ensure the job fails if any of its
43+ # dependencies fails.
44+ if : always() # make sure this is never "skipped"
45+ steps :
46+ # Manually check the status of all dependencies. `if: failure()` does not work.
47+ - name : check if any dependency failed
48+ run : jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'
You can’t perform that action at this time.
0 commit comments