name: CI
on:
pull_request:
push:
branches:
- main
permissions:
contents: read
jobs:
checks:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
- name: Setup Rust
uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 with:
toolchain: stable
components: rustfmt, clippy
- name: Cache cargo artifacts
uses: Swatinem/rust-cache@42dc69e1aa15d09112580998cf2ef0119e2e91ae
- name: Audit Rust dependencies
uses: rustsec/audit-check@69366f33c96575abad1ee0dba8212993eecbe998
- name: Check formatting
run: cargo fmt --all -- --check
- name: Clippy
run: cargo clippy --workspace --all-targets --all-features -- -D warnings
- name: Project verify
run: bash scripts/verify.sh
msrv:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
- name: Setup Rust 1.88.0
uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 with:
toolchain: 1.88.0
- name: Cache cargo artifacts
uses: Swatinem/rust-cache@42dc69e1aa15d09112580998cf2ef0119e2e91ae with:
shared-key: msrv
- name: Check minimum supported Rust version
run: cargo check --workspace --all-targets --all-features --locked