name: CI
on:
push:
branches:
- main
pull_request:
jobs:
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Update Rust
run: rustup update nightly && rustup default nightly
- name: Install rustfmt
run: rustup component add rustfmt
- run: cargo fmt -- --check
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Update Rust
run: rustup update stable && rustup default stable
- name: Install `cargo-hack`
run: cargo install cargo-hack --locked
- name: Install `cargo clippy`
run: rustup component add clippy
- run: cargo hack --each-feature clippy -- --deny warnings
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Update Rust
run: rustup update stable && rustup default stable
- name: Install `cargo-hack`
run: cargo install cargo-hack --locked
- run: cargo hack test --each-feature
test-examples:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Update Rust
run: rustup update stable && rustup default stable
- name: Install `cargo-hack`
run: cargo install cargo-hack --locked
- run: cargo hack test --each-feature --examples
test-compare-crossmap:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Update Rust
run: rustup update stable && rustup default stable
- run: cargo test --features=binaries --bin=compare-crossmap
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Update Rust
run: rustup update stable && rustup default stable
- run: cargo doc
msrv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Update Rust
run: rustup update stable && rustup default stable
- name: Install `cargo-msrv`
run: cargo install cargo-msrv --locked
- name: Install `cargo-hack`
run: cargo install cargo-hack --locked
- name: Verify the MSRV
run: cargo msrv verify -- cargo hack --each-feature check