name: Rust
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
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 (debug)
run: cargo test --verbose
- name: Run tests (release)
run: cargo test --release --verbose
miri:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install nightly + Miri
run: |
rustup toolchain install nightly --component miri
rustup default nightly
- name: Miri (soundness + dispatch)
run: cargo miri test --test audit_soundness --test runtime_dispatch
msrv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust 1.56.0
run: |
rustup toolchain install 1.56.0 --profile minimal
rustup default 1.56.0
- name: Generate an MSRV-compatible lockfile
run: |
cargo generate-lockfile
cargo update -p proc-macro2 --precise 1.0.101
cargo update -p quote --precise 1.0.40
cargo update -p unicode-ident --precise 1.0.22
- name: cargo check (MSRV 1.56.0)
run: cargo check --verbose