A Vec of Bits
1name: Rust
2
3on:
4 push:
5 branches: [ master ]
6 pull_request:
7 branches: [ master ]
8
9env:
10 CARGO_TERM_COLOR: always
11
12jobs:
13 build:
14 runs-on: ubuntu-latest
15 steps:
16 - uses: actions/checkout@v5
17 - name: Build
18 run: cargo build --verbose
19 - name: Run tests
20 run: cargo test --verbose
21 - name: Run miniserde tests
22 run: cargo test --features miniserde --verbose
23 - name: Run nanoserde tests
24 run: cargo test --features nanoserde --verbose
25 - name: Run borsh tests
26 run: cargo test --features borsh --verbose
27
28 miri:
29 name: "Miri"
30 runs-on: ubuntu-latest
31 steps:
32 - uses: actions/checkout@v5
33 - name: Install Miri
34 run: |
35 rustup toolchain install nightly --component miri
36 rustup override set nightly
37 cargo miri setup
38 - name: Test with Miri
39 run: MIRIFLAGS=-Zmiri-strict-provenance cargo miri test
40
41 fmt:
42 runs-on: ubuntu-latest
43 steps:
44 - uses: actions/checkout@v5
45 - uses: dtolnay/rust-toolchain@master
46 with:
47 toolchain: stable
48 components: rustfmt
49 - run: cargo fmt --all -- --check
50
51 msrv:
52 name: Rust ${{matrix.rust}}
53 runs-on: ubuntu-latest
54 strategy:
55 fail-fast: false
56 matrix:
57 rust: [1.82.0, 1.83.0]
58 timeout-minutes: 45
59 steps:
60 - uses: actions/checkout@v5
61 - uses: dtolnay/rust-toolchain@master
62 with:
63 toolchain: ${{matrix.rust}}
64 - run: cargo build
65 - run: cargo test
66 - run: cargo test --features serde
67 - run: cargo test --features nanoserde
68 - run: cargo test --features miniserde
69 - run: cargo test --features borsh
70
71 clippy:
72 runs-on: ubuntu-latest
73 steps:
74 - uses: actions/checkout@v5
75 - uses: dtolnay/rust-toolchain@master
76 with:
77 toolchain: stable
78 components: clippy
79 - run: cargo clippy --workspace --tests --examples
80 - run: cargo clippy --workspace --tests --examples --features serde
81 - run: cargo clippy --workspace --tests --examples --features miniserde
82 - run: cargo clippy --workspace --tests --examples --features nanoserde
83 - run: cargo clippy --workspace --tests --examples --features borsh
84
85 docs:
86 runs-on: ubuntu-latest
87 env:
88 RUSTDOCFLAGS: -Dwarnings
89 steps:
90 - uses: actions/checkout@v5
91 - uses: dtolnay/rust-toolchain@master
92 with:
93 toolchain: stable
94 - uses: swatinem/rust-cache@v2
95 - run: cargo doc --workspace --no-deps