name: Build on: workflow_dispatch: push: branches: [ "master" ] pull_request: branches: [ "master" ] env: CARGO_TERM_COLOR: always RUSTFLAGS: '-Dwarnings' jobs: rustfmt: runs-on: ubuntu-latest name: 'Formatting' steps: - uses: actions/checkout@v4 - name: Check formatting run: cargo fmt --check clippy-base: runs-on: ubuntu-latest name: 'Clippy (Base features)' steps: - uses: actions/checkout@v4 - uses: Swatinem/rust-cache@v2 name: Cache dependencies - name: Install build deps run: ./.github/scripts/ubuntu_setup.sh - name: Clippy run: cargo clippy --no-default-features --features config+json env: # Allow some warnings through as we'll never get it perfect in a zero-feature situation RUSTFLAGS: '-A unused-imports -A unused-variables -A unused-mut -A dead-code' clippy-all: runs-on: ubuntu-latest name: 'Clippy (All features)' steps: - uses: actions/checkout@v4 - uses: Swatinem/rust-cache@v2 name: Cache dependencies - name: Install build deps run: ./.github/scripts/ubuntu_setup.sh - name: Clippy run: cargo clippy --all-targets --all-features build: name: 'Build & Test' runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: Swatinem/rust-cache@v2 name: Cache dependencies - name: Install build deps run: ./.github/scripts/ubuntu_setup.sh - name: Build run: cargo build --verbose - name: Run tests uses: actions-rs/cargo@v1 with: command: test