name: CI
on: [pull_request]
env:
RUST_BACKTRACE: 1
RUSTFLAGS: -D warnings
RUSTDOCFLAGS: -D warnings
jobs:
test_suite:
name: Test suite
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Install Rust components
run: |
rustup set profile minimal
rustup default nightly
rustup target add riscv32i-unknown-none-elf
- name: Run test suite
run: |
cargo b --target=riscv32i-unknown-none-elf
cargo doc --no-deps --all-features
cargo test --all-features
cargo test --release --all-features
msrv_build:
name: MSRV build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Install MSRV
run: |
rustup set profile minimal
rustup default "$(sed -n 's/^rust-version = "\(.*\)"/\1/p' Cargo.toml)"
- name: Check that the crate builds on its MSRV
run: |
cargo build --all-features
rustfmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Install most recent Rustfmt
run: |
rustup set profile minimal
rustup default "nightly-$(curl -s https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-gnu/rustfmt)"
rustup component add rustfmt
- name: Run `cargo fmt`
run: |
cargo fmt -- --check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Install most recent Clippy
run: |
rustup set profile minimal
rustup default "nightly-$(curl -s https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-gnu/clippy)"
rustup component add clippy
- name: Run `cargo clippy`
run: |
cargo clippy --all --all-targets --all-features -- -D clippy::all