22
33on :
44 push :
5+ branches :
6+ - " *"
57 pull_request :
68 types : [ opened, reopened, synchronize ]
79 branches :
@@ -18,26 +20,18 @@ permissions:
1820# Each job runs in a runner environment specified by `runs-on`.
1921jobs :
2022
21- test :
22- name : Test
23+ clippy :
24+ name : Clippy
2325 runs-on : ubuntu-latest
2426 steps :
27+ - uses : actions/checkout@v5
2528 - uses : ilammy/setup-nasm@v1
26-
27- - name : Check out repository code
28- uses : actions/checkout@v5
29-
30- # This GitHub Action installs a Rust toolchain using "rustup".
31- # It is designed for one-line concise usage and good defaults.
32- - name : Install the Rust toolchain
33- uses : dtolnay/rust-toolchain@stable
34-
35- # A GitHub Action that implements smart caching for rust/cargo projects with sensible defaults.
36- - name : Rust Cache Action
37- uses : Swatinem/rust-cache@v2
38-
39- - name : Run tests
40- run : cargo test
29+ - uses : dtolnay/rust-toolchain@stable
30+ with :
31+ components : clippy
32+ - uses : Swatinem/rust-cache@v2
33+ - name : Linting
34+ run : cargo clippy --all-targets --all-features -- -D warnings
4135
4236 fmt :
4337 name : Format
@@ -47,18 +41,60 @@ jobs:
4741 - uses : dtolnay/rust-toolchain@stable
4842 with :
4943 components : rustfmt
44+ - uses : Swatinem/rust-cache@v2
5045 - name : Enforce formatting
51- run : cargo fmt --check
46+ run : cargo fmt --all -- -- check --color always
5247
53- clippy :
54- name : Clippy
48+ msrv :
49+ name : MSRV check
5550 runs-on : ubuntu-latest
5651 steps :
5752 - uses : actions/checkout@v5
5853 - uses : ilammy/setup-nasm@v1
59- - uses : dtolnay/rust-toolchain@stable
54+ - uses : dtolnay/rust-toolchain@master
6055 with :
56+ toolchain : 1.89.0
6157 components : clippy
58+ - run : cargo fetch
59+ - name : MSRV check with cargo clippy
60+ run : cargo clippy --all-targets --all-features -- -D warnings
61+
62+ publish-check :
63+ name : Publish check
64+ runs-on : ubuntu-latest
65+ steps :
66+ - uses : actions/checkout@v5
67+ - uses : ilammy/setup-nasm@v1
68+ - uses : dtolnay/rust-toolchain@stable
6269 - uses : Swatinem/rust-cache@v2
63- - name : Linting
64- run : cargo clippy -- -D warnings
70+ - run : cargo fetch
71+ - name : cargo publish dry run
72+ run : cargo publish --dry-run
73+
74+ test :
75+ name : Test
76+ runs-on : ubuntu-latest
77+ steps :
78+ - name : Check out repository code
79+ uses : actions/checkout@v5
80+
81+ - uses : ilammy/setup-nasm@v1
82+
83+ # This GitHub Action installs a Rust toolchain using "rustup".
84+ # It is designed for one-line concise usage and good defaults.
85+ - name : Install the Rust toolchain
86+ uses : dtolnay/rust-toolchain@stable
87+
88+ # A GitHub Action that implements smart caching for rust/cargo projects with sensible defaults.
89+ - name : Rust Cache Action
90+ uses : Swatinem/rust-cache@v2
91+
92+ - name : Run tests
93+ run : cargo test --all --all-targets
94+
95+ ci-success :
96+ name : CI success
97+ runs-on : ubuntu-latest
98+ needs : [clippy, fmt, msrv, publish-check, test]
99+ steps :
100+ - run : echo "All CI jobs successfully finished."
0 commit comments