Add Miri checks #1 #21
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [ main, develop ] | |
| pull_request: | |
| branches: [ main ] | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| test: | |
| name: Test | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| rust: [stable, beta] | |
| include: | |
| - os: ubuntu-latest | |
| rust: nightly | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| components: rustfmt, clippy | |
| - name: Cache dependencies | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Check formatting | |
| if: matrix.rust == 'stable' && matrix.os == 'ubuntu-latest' | |
| run: cargo fmt --all -- --check | |
| - name: Run clippy | |
| if: matrix.rust == 'stable' | |
| run: cargo clippy --all-targets -- -D warnings | |
| - name: Run clippy (no_std) | |
| if: matrix.rust == 'stable' | |
| run: cargo clippy --all-targets --no-default-features -- -D warnings | |
| - name: Build | |
| run: cargo build --verbose | |
| - name: Run tests | |
| run: cargo test --verbose | |
| - name: Run tests (no_std) | |
| run: cargo test --no-default-features --verbose | |
| - name: Check no_std compilation | |
| run: cargo check --no-default-features --verbose | |
| - name: Run tests (nightly features) | |
| if: matrix.rust == 'nightly' | |
| run: cargo test --features nightly --verbose | |
| docs: | |
| name: Documentation | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Cache dependencies | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Check documentation | |
| run: cargo doc --no-deps | |
| minimum-rust-version: | |
| name: Minimum Rust Version | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust 1.70 | |
| uses: dtolnay/rust-toolchain@1.70 | |
| - name: Cache dependencies | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Check MSRV | |
| run: cargo check | |
| miri: | |
| name: Miri | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust nightly with Miri | |
| uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| components: miri | |
| - name: Cache dependencies | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Miri setup | |
| run: cargo +nightly miri setup | |
| - name: Miri tests default | |
| run: cargo +nightly miri test | |
| - name: Miri tests no_std | |
| run: cargo +nightly miri test --no-default-features | |
| - name: Miri tests nightly features | |
| run: cargo +nightly miri test --features nightly |