name: Rust on: push: branches: [ "main", "dev" ] pull_request: branches: [ "main" ] env: CARGO_TERM_COLOR: always jobs: fmt: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: submodules: recursive - name: Format run: cargo fmt --all --check test: runs-on: ${{ matrix.os }} strategy: matrix: os: [macos-latest, ubuntu-latest] steps: - uses: actions/checkout@v4 - name: Test run: cargo test typo: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Spell Check uses: crate-ci/typos@master clippy: runs-on: ${{ matrix.os }} strategy: matrix: os: [macos-latest, ubuntu-latest] steps: - uses: actions/checkout@v4 - name: Clippy (fail on warnings) run: cargo clippy -- -D warnings check: runs-on: ${{ matrix.os }} strategy: matrix: os: [macos-latest, ubuntu-latest] steps: - uses: actions/checkout@v4 - name: Check compilation run: cargo check --verbose doc: runs-on: ${{ matrix.os }} strategy: matrix: os: [macos-latest, ubuntu-latest] steps: - uses: actions/checkout@v4 - name: Documentation run: cargo doc --no-deps