name: CI
on:
push:
branches: ["**"]
paths-ignore: ["README.md", "CHANGELOG.md"]
pull_request:
branches: ["**"]
paths-ignore: ["README.md", "CHANGELOG.md"]
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: "-D warnings"
jobs:
test:
name: Test on Rust stable
runs-on: ubuntu-latest
strategy:
matrix:
include:
- target: powerpc-unknown-linux-gnu
deps: sudo apt update && sudo apt install gcc-multilib
- target: x86_64-unknown-linux-gnu
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
- run: cargo --version
- run: cargo test --all-features
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
components: rustfmt
- name: Run cargo fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- run: cargo clippy --all-features -- -D warnings
build-nostd:
name: Build on no_std target (thumbv7em-none-eabi)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
targets: thumbv7em-none-eabi
- uses: taiki-e/install-action@cargo-hack
- name: no_std / no feat
run: cargo build --target thumbv7em-none-eabi --release --no-default-features
- name: no_std / cargo hack
run: cargo hack build --target thumbv7em-none-eabi --release --each-feature --exclude-features default,kat
msrv:
name: rust-version is MSRV
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- run: cargo +nightly install cargo-msrv --no-default-features
- run: cargo +nightly msrv --version
- run: cargo +nightly msrv verify --all-features
docsrs:
name: Check docs-rs build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@nightly
- run: cargo doc --all-features --no-deps
env:
RUSTDOCFLAGS: "--cfg docsrs -D warnings"