Merge pull request #51 from asynchronics/feature/deadlock-detection #120
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, dev] | |
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 --tests --all-features | |
env: | |
RUSTFLAGS: --cfg asynchronix_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 example1 (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 example1 (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 example2 (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 example2 (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 example3 (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 example3 (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 example4 (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 example4 (multi-threaded executor) | |
run: cargo miri run --example assembly | |
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 |