name: Rust
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose
fmt:
name: Fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: cargo fmt
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@clippy
- run: cargo clippy -- -D warnings
msrv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: taiki-e/install-action@cargo-hack
- run: cargo hack check --rust-version --workspace --lib --ignore-private
miri:
runs-on: ubuntu-latest
env:
MIRIFLAGS: "-Zmiri-ignore-leaks" steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@miri
- name: Miri setup
run: cargo miri setup
- name: Run tests
run: |
cargo miri test --test borrow_basic
cargo miri test --test borrow_dyn
cargo miri test --test abort
cargo miri test --test borrow_basic_mt
cargo miri test --test borrow_corner_cases