name: Rust
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: -D warnings
jobs:
test:
name: Test (${{ matrix.os }}, ${{ matrix.features }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
features:
- "--no-default-features"
- "--features alloc"
- "--features serde"
- "--all-features"
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Test
run: cargo test ${{ matrix.features }} --verbose
lint:
name: Clippy and rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy, rustfmt
- name: Clippy
run: cargo clippy --all-features --all-targets -- -D warnings
- name: Format
run: cargo fmt --check
msrv:
name: MSRV (1.85)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.85
- name: Check
run: cargo check --all-features
no-std:
name: no_std (thumbv7em-none-eabi)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: thumbv7em-none-eabi
- name: Build core
run: cargo build --target thumbv7em-none-eabi --no-default-features
- name: Build with all features
run: cargo build --target thumbv7em-none-eabi --features full
docs:
name: Docs (docs.rs configuration)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- name: Build docs
run: cargo doc --all-features --no-deps
env:
RUSTDOCFLAGS: --cfg docsrs -D warnings
wasm:
name: wasm32-wasip1 (node WASI)
runs-on: ubuntu-latest
env:
CARGO_TARGET_WASM32_WASIP1_RUNNER: node --no-warnings ${{ github.workspace }}/ci/wasi-runner.mjs
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-wasip1
- name: Test (portable paths)
run: cargo test --target wasm32-wasip1 --test contract_tests --test property_tests --test tests
- name: Test (simd128 kernels)
run: cargo test --target wasm32-wasip1 --features simd --test contract_tests --test property_tests --test tests
env:
RUSTFLAGS: -C target-feature=+simd128