name: CI
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
quality:
name: Stable Rust
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 - uses: dtolnay/rust-toolchain@7e38f4b43b4db5c8dd498af069a4f6196df1d067 with:
toolchain: stable
components: clippy, rustfmt
- run: cargo fmt --all --check
- run: cargo clippy --locked --all-targets --all-features -- -D warnings
- run: cargo test --locked --all-features
- run: cargo doc --locked --no-deps --all-features
env:
RUSTDOCFLAGS: -D warnings
- run: cargo package --locked
- run: bash -n tools/setup-github.sh
msrv:
name: Rust 1.88 / no_std
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 - uses: dtolnay/rust-toolchain@7e38f4b43b4db5c8dd498af069a4f6196df1d067 with:
toolchain: "1.88.0"
targets: riscv32imac-unknown-none-elf,wasm32-unknown-unknown
- run: cargo check --locked --lib --no-default-features --target riscv32imac-unknown-none-elf
- run: cargo check --locked --lib --no-default-features --target wasm32-unknown-unknown
supply-chain:
name: Advisories
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 - uses: dtolnay/rust-toolchain@7e38f4b43b4db5c8dd498af069a4f6196df1d067 with:
toolchain: stable
- uses: taiki-e/install-action@183e4297cca2404691e9380e1307288dced5c82a with:
tool: cargo-deny
- run: cargo deny check advisories