name: Build, Format and Test
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build_and_test:
runs-on: ubuntu-latest
strategy:
matrix:
toolchain: ["1.75.0", "stable"]
steps:
- uses: actions/checkout@v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.toolchain }}
components: rustfmt, clippy
- uses: swatinem/rust-cache@v2
- name: Cargo Build
run: cargo build --verbose
- name: Cargo Test
run: cargo test --verbose
- name: Cargo fmt
if: matrix.toolchain == 'stable' run: cargo fmt --all -- --check
- name: Cargo Clippy
if: matrix.toolchain == 'stable' run: cargo clippy -- -D warnings