Skip to content

Commit c7829ed

Browse files
committed
ci: check build with MSRV
1 parent cbd1cea commit c7829ed

File tree

1 file changed

+31
-6
lines changed

1 file changed

+31
-6
lines changed

.github/workflows/ci.yaml

+31-6
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,29 @@ env:
88
RUSTDOCFLAGS: '-Dwarnings'
99

1010
jobs:
11+
rust-version:
12+
name: Minimal supported Rust version
13+
outputs:
14+
version: ${{ steps.read_version.outputs.msrv }}
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v4
18+
- id: read_version
19+
run: |
20+
awk -F '=' \
21+
'/^rust-version[[:space:]]*=/ { gsub(/([" ]|#.*)/,"",$2); print ("msrv=" $2) }' \
22+
Cargo.toml \
23+
| tee -a "$GITHUB_OUTPUT"
24+
1125
test-linux:
1226
name: Test (Linux)
27+
needs: rust-version
1328
runs-on: ubuntu-latest
29+
strategy:
30+
matrix:
31+
rust-version:
32+
- ${{ needs.rust-version.outputs.version }}
33+
- stable
1434
steps:
1535
- name: checkout source
1636
uses: actions/checkout@v4
@@ -24,8 +44,8 @@ jobs:
2444
~/.cargo/registry/cache/
2545
~/.cargo/git/db/
2646
target/
27-
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
28-
restore-keys: ${{ runner.os }}-cargo-
47+
key: ${{ runner.os }}-cargo-${{ matrix.rust-version}}-${{ hashFiles('**/Cargo.lock') }}
48+
restore-keys: ${{ runner.os }}-cargo-${{ matrix.rust-version }}-
2949
- name: set up nginx deps cache
3050
uses: actions/cache@v4
3151
continue-on-error: false
@@ -38,24 +58,29 @@ jobs:
3858
.cache/*.tar.sig
3959
key: ${{ runner.os }}-deps-${{ hashFiles('**/nginx-sys/build.rs') }}
4060
restore-keys: ${{ runner.os }}-deps-
41-
- uses: dtolnay/rust-toolchain@stable
61+
62+
- uses: dtolnay/rust-toolchain@master
4263
with:
4364
components: rustfmt, clippy
65+
toolchain: ${{ matrix.rust-version }}
4466

4567
- name: build
4668
id: build
4769
run: cargo build --workspace --all-targets --all-features
4870

4971
- name: run clippy
50-
if: ${{ !cancelled() && steps.build.outcome == 'success' }} # always run if build succeeds
72+
# always run if build succeeds
73+
if: ${{ !cancelled() && steps.build.outcome == 'success' }}
5174
run: cargo clippy --workspace --all-targets --all-features -- -Dwarnings
5275

5376
- name: run tests
54-
if: ${{ !cancelled() && steps.build.outcome == 'success' }} # always run if build succeeds
77+
# always run if build succeeds
78+
if: ${{ !cancelled() && steps.build.outcome == 'success' }}
5579
run: cargo test --workspace --all-features
5680

5781
- name: rustdoc
58-
if: ${{ !cancelled() && steps.build.outcome == 'success' }} # always run if build succeeds
82+
# always run if build succeeds
83+
if: ${{ !cancelled() && steps.build.outcome == 'success' }}
5984
run: cargo doc --no-deps
6085

6186
examples-linux:

0 commit comments

Comments
 (0)