name: Continuous integration on: [push, pull_request, merge_group] env: RUSTFLAGS: "-Dwarnings" RUSTDOCFLAGS: "-Dwarnings" jobs: tests: name: Tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - run: cargo build --workspace - run: cargo test --workspace --no-fail-fast checks: name: Check clippy, formatting, and documentation runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - run: cargo clippy --workspace --all-targets --all-features - run: cargo fmt --check --all - run: cargo doc --workspace --no-deps min-version: name: Check mininum Rust version runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@1.70.0 - uses: Swatinem/rust-cache@v2 - run: cargo check --workspace fuzz: name: Check fuzzers runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@master with: toolchain: nightly-2023-09-13 - uses: Swatinem/rust-cache@v2 - run: cargo install cargo-fuzz - run: cd tests/fuzz && cargo fuzz build --dev