name: Test
on:
workflow_dispatch:
push:
branches:
- main
paths:
- "**/*.rs"
- "**/Cargo.toml"
- "Cargo.lock"
- "dist-workspace.toml"
- ".cargo/config.toml"
- "rust-toolchain.toml"
- "scripts/check-rust-ignore-count.sh"
- ".github/workflows/test.yml"
- ".github/workflows/release.yml"
- ".github/workflows/publish-crates.yml"
pull_request:
paths:
- "**/*.rs"
- "**/Cargo.toml"
- "Cargo.lock"
- "dist-workspace.toml"
- ".cargo/config.toml"
- "rust-toolchain.toml"
- "scripts/check-rust-ignore-count.sh"
- ".github/workflows/test.yml"
- ".github/workflows/release.yml"
- ".github/workflows/publish-crates.yml"
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: full
CARGO_INCREMENTAL: 0
jobs:
fmt:
name: Rustfmt
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v6
- uses: Swatinem/rust-cache@v2
- run: bash scripts/check-rust-ignore-count.sh
- run: cargo fmt --all -- --check
clippy:
name: Clippy
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v6
- uses: Swatinem/rust-cache@v2
- run: cargo fetch --locked
- run: cargo clippy --all-targets --all-features
test-native:
name: Test ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v6
- uses: Swatinem/rust-cache@v2
- run: cargo fetch --locked
- run: cargo test --workspace --all-features