on:
push:
branches:
- main
pull_request:
schedule:
- cron: '0 0 * * 0'
name: CI
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: Swatinem/rust-cache@v2
- run: cargo check
msrv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: Swatinem/rust-cache@v2
- run: |
# Extract the MSRV from Cargo.toml.
msrv=$(cargo metadata --no-deps --format-version=1 | jq --raw-output '.packages[] | .rust_version')
rustup toolchain install ${msrv} --profile minimal --no-self-update
cargo +${msrv} build
test:
name: Test Suite
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: Swatinem/rust-cache@v2
- run: cargo test
fmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- run: cargo fmt --all -- --check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: Swatinem/rust-cache@v2
- run: cargo clippy -- -D warnings
doc:
name: Docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: Swatinem/rust-cache@v2
- run: cargo doc
env:
RUSTDOCFLAGS: -Dwarnings