name: CI checks on: [push, pull_request] jobs: test: name: Test on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macOS-latest] steps: - uses: actions/checkout@v3 - name: Run tests run: cargo test --all-features --verbose --workspace - name: Verify working directory is clean run: git diff --exit-code bitrot: name: Bitrot check runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 # Build benchmarks to prevent bitrot - name: Build benchmarks run: cargo build --workspace --benches --all-features doc-links: name: Intra-doc links runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - run: cargo fetch # Requires #![deny(rustdoc::broken_intra_doc_links)] in crates. - name: Check intra-doc links run: cargo doc --workspace --document-private-items fmt: name: Rustfmt timeout-minutes: 30 runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Check formatting run: cargo fmt --all -- --check