name: CI
on:
pull_request:
push:
branches:
- main
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
features: [--no-default-features, --all-features]
steps:
- uses: actions/checkout@v4
- name: rustfmt
run: cargo fmt -- --check --config "unstable_features=true,imports_granularity=Crate,group_imports=StdExternalCrate,format_code_in_doc_comments=true"
- name: clippy
run: cargo clippy ${{ matrix.features }} --all-targets -- -D warnings
- name: test
run: cargo test ${{ matrix.features }}
- name: check doc
if: matrix.features == '--all-features'
run: cargo doc ${{ matrix.features }}
env:
RUSTDOCFLAGS: "-Dwarnings"
miri:
needs: test
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
seeds: [0..256, 256..512, 512..768, 768..1024, 1024..1280, 1280..1536, 1536..1792, 1792..2048]
steps:
- uses: actions/checkout@v4
- name: install miri
run: rustup install nightly && rustup +nightly component add miri
- name: miri
run: cargo +nightly miri test --tests --all-features
env:
MIRIFLAGS: -Zmiri-many-seeds=${{ matrix.seeds }} -Zmiri-compare-exchange-weak-failure-rate=0