on:
push:
branches: "*"
schedule:
- cron: "0 0 * * 6"
name: Lint and Test
env:
RUSTFLAGS: "-Dwarnings"
RUST_BACKTRACE: 1
jobs:
check:
name: Test
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
fail-fast: false
runs-on: ${{ matrix.os }}
env:
OS: ${{ matrix.os }}
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Install Rust Toolchain
id: toolchain
uses: dtolnay/rust-toolchain@v1
with:
toolchain: "1.79.0"
- name: Install Emscripten Target
run: rustup target add wasm32-unknown-emscripten
- uses: mymindstorm/setup-emsdk@v14
- name: cargo test
run: cargo test --workspace
- name: cargo test without default features
run: cargo test --workspace --no-default-features
- name: cargo test wasm32-unknown-emscripten
run: cargo test --workspace --target wasm32-unknown-emscripten
- name: cargo test without default features wasm32-unknown-emscripten
run: cargo test --workspace --no-default-features --target wasm32-unknown-emscripten
miri:
name: MIRI Test
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Install Rust Toolchain
uses: dtolnay/rust-toolchain@v1
with:
toolchain: nightly
components: miri
- name: cargo miri
run: cargo miri test --workspace
coverage:
name: Lint and Test Coverage
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
fail-fast: false
runs-on: ${{ matrix.os }}
env:
OS: ${{ matrix.os }}
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Install Rust Toolchain
id: toolchain
uses: dtolnay/rust-toolchain@v1
with:
toolchain: stable
components: llvm-tools-preview, rustfmt, clippy
- name: cargo fmt
run: cargo fmt --all -- --check
- name: cargo clippy
run: cargo clippy --workspace --all-targets
- name: cargo doc
run: cargo doc --workspace