name: CI
on: [push]
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- run: rustup update stable
- run: rustup default stable
- run: cargo check --all
test:
name: Test Suite
runs-on: ubuntu-latest
strategy:
matrix:
toolchain: [stable, beta, nightly]
steps:
- uses: actions/checkout@v6
- run: rustup update ${{ matrix.toolchain }}
- run: rustup default ${{ matrix.toolchain }}
- run: cargo test --all
pbt:
name: Property-based Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- run: rustup update stable
- run: rustup default stable
- run: cargo test -p pbt
env:
PROPTEST_CASES: 32
lints:
name: Lints
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- run: rustup update stable
- run: rustup default stable
- run: rustup component add rustfmt clippy
- run: cargo fmt --all -- --check
- run: cargo clippy --all -- -D warnings
no-std:
name: no_std
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- run: rustup update stable
- run: rustup default stable
- run: cargo check --no-default-features
- run: cargo test --no-default-features
- run: cargo clippy --no-default-features -- -D warnings
fuzz:
name: Fuzz
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- run: rustup update nightly
- run: rustup default nightly
- run: rustup component add rust-src
- run: cargo install cargo-fuzz
- name: Run fuzz target
run: cargo +nightly fuzz run fuzz_target -- -max_len=4096 -max_total_time=60