name: Rust
on:
push:
branches:
- "main"
pull_request:
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: "-Dwarnings"
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
toolchain:
- "1.85"
- "stable"
- "beta"
steps:
- uses: actions/checkout@v5
- name: Set Rust toolchain version
run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }}
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose
minimal-versions:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Set Rust toolchain version
run: rustup update nightly && rustup default nightly
- uses: taiki-e/install-action@cargo-hack
- uses: taiki-e/install-action@cargo-minimal-versions
- name: Run build
run: cargo minimal-versions build --verbose
- name: Run tests
run: cargo minimal-versions test --verbose
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Set Rust toolchain version
run: rustup update stable && rustup default stable && rustup component add clippy
- name: Run Clippy
run: cargo clippy --all-targets --all-features