Merge pull request #70 from asynchronics/feature/report_missing_recip… #172
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
push: | |
branches: [ main ] | |
env: | |
RUSTFLAGS: -Dwarnings | |
jobs: | |
check: | |
name: Check | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
rust: | |
- stable | |
- 1.77.0 | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.rust }} | |
- name: Run cargo check | |
run: cargo check --all-features | |
build-wasm: | |
name: Build wasm32 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
targets: wasm32-unknown-unknown | |
- name: Run cargo build (wasm) | |
run: cargo build --target wasm32-unknown-unknown | |
test: | |
name: Test suite | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: Run cargo test | |
run: cargo test --all-features | |
loom-dry-run: | |
name: Loom dry run | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: Dry-run cargo test (Loom) | |
run: cargo test --no-run --lib --all-features | |
env: | |
RUSTFLAGS: --cfg nexosim_loom | |
miri: | |
name: Miri | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: miri | |
- name: Run cargo miri tests (single-threaded executor) | |
run: cargo miri test --tests --lib --all-features | |
env: | |
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-num-cpus=1 | |
- name: Run cargo miri tests (multi-threaded executor) | |
run: cargo miri test --tests --lib --all-features | |
env: | |
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-num-cpus=4 | |
- name: Run cargo miri espresso_machine (single-threaded executor) | |
run: cargo miri run --example espresso_machine | |
env: | |
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-num-cpus=1 | |
- name: Run cargo miri espresso_machine (multi-threaded executor) | |
run: cargo miri run --example espresso_machine | |
env: | |
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-num-cpus=4 | |
- name: Run cargo miri power_supply (single-threaded executor) | |
run: cargo miri run --example power_supply | |
env: | |
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-num-cpus=1 | |
- name: Run cargo miri power_supply (multi-threaded executor) | |
run: cargo miri run --example power_supply | |
env: | |
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-num-cpus=4 | |
- name: Run cargo miri stepper_motor (single-threaded executor) | |
run: cargo miri run --example stepper_motor | |
env: | |
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-num-cpus=1 | |
- name: Run cargo miri stepper_motor (multi-threaded executor) | |
run: cargo miri run --example stepper_motor | |
env: | |
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-num-cpus=4 | |
- name: Run cargo miri assembly (single-threaded executor) | |
run: cargo miri run --example assembly | |
env: | |
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-num-cpus=1 | |
- name: Run cargo miri assembly (multi-threaded executor) | |
run: cargo miri run --example assembly | |
env: | |
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-num-cpus=4 | |
- name: Run cargo miri uni_requestor (single-threaded executor) | |
run: cargo miri run --example uni_requestor | |
env: | |
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-num-cpus=1 | |
- name: Run cargo miri uni_requestor (multi-threaded executor) | |
run: cargo miri run --example uni_requestor | |
env: | |
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-num-cpus=4 | |
- name: Run cargo miri observables (single-threaded executor) | |
run: cargo miri run --example observables | |
env: | |
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-num-cpus=1 | |
- name: Run cargo miri observables (multi-threaded executor) | |
run: cargo miri run --example observables | |
env: | |
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-num-cpus=4 | |
lints: | |
name: Lints | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: Run cargo fmt | |
run: cargo fmt --all -- --check | |
- name: Run cargo clippy | |
run: cargo clippy --all-features | |
docs: | |
name: Docs | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: dtolnay/rust-toolchain@nightly | |
- name: Run cargo doc | |
run: cargo doc --no-deps --all-features --document-private-items | |
env: | |
RUSTDOCFLAGS: --cfg docsrs -Dwarnings |