|
1 | 1 | name: ci
|
| 2 | +env: |
| 3 | + MSRV: '1.75' |
2 | 4 | on:
|
3 | 5 | push:
|
4 | 6 | branches:
|
5 | 7 | - main
|
6 | 8 | pull_request:
|
7 | 9 |
|
8 | 10 | jobs:
|
9 |
| - style: |
10 |
| - name: Format |
| 11 | + check: |
11 | 12 | runs-on: ubuntu-latest
|
12 | 13 | steps:
|
13 |
| - - uses: actions/checkout@v3 |
14 |
| - - name: Install Rust |
15 |
| - uses: dtolnay/rust-toolchain@stable |
| 14 | + - uses: actions/checkout@v4 |
| 15 | + - uses: taiki-e/install-action@protoc |
| 16 | + - uses: dtolnay/rust-toolchain@beta |
16 | 17 | with:
|
17 |
| - components: rustfmt |
18 |
| - - name: Check format |
19 |
| - run: cargo fmt --check |
20 |
| - |
21 |
| - clippy: |
22 |
| - name: Clippy |
| 18 | + components: clippy, rustfmt |
| 19 | + - uses: Swatinem/rust-cache@v2 |
| 20 | + - name: clippy |
| 21 | + run: cargo clippy --workspace --all-targets --all-features -- -D warnings |
| 22 | + - name: rustfmt |
| 23 | + run: cargo fmt --all --check |
| 24 | + check-docs: |
23 | 25 | runs-on: ubuntu-latest
|
24 | 26 | steps:
|
25 |
| - - uses: actions/checkout@v3 |
26 |
| - - uses: dtolnay/rust-toolchain@stable |
27 |
| - with: |
28 |
| - components: clippy |
29 |
| - - run: cargo clippy --all-targets --all-features -- -D warnings |
30 |
| - |
31 |
| - tests: |
32 |
| - name: Tests |
33 |
| - runs-on: ${{ matrix.os }} |
| 27 | + - uses: actions/checkout@v4 |
| 28 | + - uses: dtolnay/rust-toolchain@stable |
| 29 | + - uses: Swatinem/rust-cache@v2 |
| 30 | + - name: cargo doc |
| 31 | + env: |
| 32 | + RUSTDOCFLAGS: "-D rustdoc::all -A rustdoc::private-doc-tests" |
| 33 | + run: cargo doc --all-features --no-deps |
| 34 | + test-versions: |
| 35 | + needs: check |
| 36 | + runs-on: ubuntu-latest |
34 | 37 | strategy:
|
35 | 38 | matrix:
|
36 |
| - build: [pinned, stable, nightly] |
37 |
| - include: |
38 |
| - - build: pinned |
39 |
| - os: ubuntu-22.04 |
40 |
| - rust: 1.68.0 |
41 |
| - - build: stable |
42 |
| - os: ubuntu-22.04 |
43 |
| - rust: stable |
44 |
| - - build: nightly |
45 |
| - os: ubuntu-22.04 |
46 |
| - rust: nightly |
| 39 | + rust: [stable, beta, nightly] |
47 | 40 | steps:
|
48 |
| - - uses: actions/checkout@v3 |
49 |
| - - name: Install Rust |
50 |
| - uses: dtolnay/rust-toolchain@master |
| 41 | + - uses: actions/checkout@v4 |
| 42 | + - uses: dtolnay/rust-toolchain@master |
51 | 43 | with:
|
52 | 44 | toolchain: ${{ matrix.rust }}
|
53 |
| - |
| 45 | + - uses: Swatinem/rust-cache@v2 |
54 | 46 | - name: Build System Info
|
55 | 47 | run: rustc --version
|
56 |
| - |
57 | 48 | - name: Run tests default features
|
58 | 49 | run: cargo test
|
59 |
| - |
60 |
| - - name: Run tests all features |
61 |
| - run: cargo test --all-features |
62 |
| - |
63 | 50 | - name: Run tests no features
|
64 | 51 | run: cargo test --no-default-features
|
| 52 | + - name: Run tests all features |
| 53 | + run: cargo test --all-features |
| 54 | + test-msrv: |
| 55 | + needs: check |
| 56 | + runs-on: ubuntu-latest |
| 57 | + steps: |
| 58 | + - uses: actions/checkout@v4 |
| 59 | + - uses: dtolnay/rust-toolchain@master |
| 60 | + with: |
| 61 | + toolchain: ${{ env.MSRV }} |
| 62 | + - name: "install Rust nightly" |
| 63 | + uses: dtolnay/rust-toolchain@nightly |
| 64 | + - uses: Swatinem/rust-cache@v2 |
| 65 | + - name: Run tests all features |
| 66 | + run: cargo test --all-features |
0 commit comments