name: Test
on: [push, pull_request]
jobs:
test:
name: Test
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
combo: [
{ rust: stable, flags: --features=default },
{ rust: 1.60.0, flags: --features=default },
{ rust: stable, flags: --all-features },
{ rust: stable, flags: --no-default-features --features=libm },
]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup toolchain
uses: dtolnay/rust-toolchain@v1
with:
toolchain: ${{ matrix.combo.rust }}
- name: Build
run: cargo build --all-targets ${{ matrix.combo.flags }}
env:
RUSTFLAGS: -D warnings
- name: Test
run: cargo test ${{ matrix.combo.flags }}
docs:
name: Docs
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup toolchain
uses: dtolnay/rust-toolchain@v1
with:
toolchain: stable
- name: Setup cargo-rdme
uses: taiki-e/install-action@v2
with:
tool: cargo-rdme
- name: Build docs
run: cargo doc --all-features --no-deps --document-private-items
env:
RUSTDOCFLAGS: -D warnings
- name: Check README
run: cargo rdme --check
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup toolchain
uses: dtolnay/rust-toolchain@v1
with:
toolchain: stable
components: rustfmt, clippy
- name: Run rustfmt
run: cargo fmt --all -- --check
- name: Run clippy
run: cargo clippy --all-targets --all-features
env:
RUSTFLAGS: -D warnings