name: CI on: push: branches: [ "main" ] pull_request: branches: [ "main" ] env: CARGO_TERM_COLOR: always RUST_BACKTRACE: 1 jobs: ci: name: ${{ matrix.name }} # Pin to ubuntu-24.04 (glibc 2.39) so CI validates the same baseline the # release binaries are built against. runs-on: ubuntu-24.04 strategy: # Let all legs run to completion even if one fails. fail-fast: false matrix: include: - name: Test Suite run: cargo test --workspace --all-features deps: true - name: Clippy components: clippy run: cargo clippy --workspace --all-features -- -D warnings deps: true - name: Rustfmt components: rustfmt run: cargo fmt --all -- --check deps: false - name: Documentation run: RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --workspace --all-features deps: true - name: Cargo Machete run: cargo install cargo-machete && cargo machete deps: true steps: - uses: actions/checkout@v7 - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable with: components: ${{ matrix.components }} - name: Install dependencies if: matrix.deps uses: ./.github/actions/install-dependencies - name: ${{ matrix.name }} run: ${{ matrix.run }}