name: CI checks
on: [push, pull_request]
env:
RUSTFLAGS: "-Dwarnings"
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
run: rustup toolchain install 1.87.0 --profile minimal --component rustfmt,clippy
- name: Check formatting
run: cargo +1.87.0 fmt --all -- --check
- name: Check Clippy lints
run: cargo +1.87.0 clippy --all-targets --all-features -- -D warnings
test:
name: Test on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
- uses: actions/checkout@v4
- name: Install Rust
run: rustup toolchain install 1.87.0 --profile minimal
- name: Run tests
run: cargo +1.87.0 test --release --all-features
no-std:
name: Check no-std target ${{ matrix.target }}
runs-on: ubuntu-latest
strategy:
matrix:
target:
- thumbv6m-none-eabi
- wasm32-unknown-unknown
- wasm32-wasip1
steps:
- uses: actions/checkout@v4
- name: Install Rust target
run: |
rustup toolchain install 1.87.0 --profile minimal
rustup target add --toolchain 1.87.0 ${{ matrix.target }}
- name: Build
run: cargo +1.87.0 build --target ${{ matrix.target }} --no-default-features --features groups,pairings
docs:
name: Documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install nightly Rust
run: rustup toolchain install nightly --profile minimal
- name: Build documentation
run: cargo +nightly doc --all-features --no-deps --document-private-items