name: Rust
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
env:
CARGO_TERM_COLOR: always
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: false
- name: Cleanup stray advisory-db submodule residue
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
git submodule deinit -f --all || true
rm -rf .git/modules/cargo-home/advisory-db || true
rm -rf cargo-home/advisory-db || true
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: Build
run: cargo build --verbose --locked
- name: Run tests
run: cargo test --verbose --locked
- name: Install cargo-audit
run: cargo install cargo-audit --locked
- name: Security audit
run: cargo audit --deny warnings