name: Cargo Build, Test, and Linting on: push: pull_request: env: CARGO_TERM_COLOR: always jobs: format: name: Rust project - latest runs-on: ubuntu-latest strategy: matrix: toolchain: - stable steps: - uses: actions/checkout@v4 - run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }} - run: cargo fmt --check clippy: name: Rust project - latest runs-on: ubuntu-latest strategy: matrix: toolchain: - stable steps: - uses: actions/checkout@v4 - run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }} - run: cargo clippy --all-targets --all-features --no-default-features -- -D warnings build_and_test: name: Rust project - latest runs-on: ubuntu-latest strategy: matrix: toolchain: - stable steps: - uses: actions/checkout@v4 - run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }} - run: cargo build --verbose - run: cargo test --verbose build_release: name: Rust project - latest runs-on: ubuntu-latest strategy: matrix: toolchain: - stable steps: - uses: actions/checkout@v4 - run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }} - run: cargo build --verbose --release - run: cargo clippy --release --all-targets --all-features --no-default-features -- -D warnings