name: Test, Static Analysis, and Containerization
on:
push:
branches:
- main
pull_request:
branches:
- main
paths:
- "crates/**"
- "src/**"
- "**/Cargo.toml"
- "**/Cargo.lock"
- ".github/workflows/build.yaml"
jobs:
test-audit-build:
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install protoc
uses: arduino/setup-protoc@v1
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: clippy, rustfmt
override: true
- uses: ilammy/setup-nasm@v1
- name: Cache dependencies
uses: Swatinem/rust-cache@v1
- name: Test
run: cargo test
id: test
- run: cargo audit --ignore RUSTSEC-2021-0139
- run: cargo clippy --all-targets --all-features --workspace --no-deps -- -D warnings
- run: cargo fmt --all -- --check
- run: cargo build --release