name: CI on: push: branches: [main, master] pull_request: branches: [main, master] env: CARGO_TERM_COLOR: always jobs: test: name: Test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Rust uses: dtolnay/rust-action@stable with: components: clippy, rustfmt - name: Install capnp run: sudo apt-get update && sudo apt-get install -y capnproto - name: Cache cargo uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo- - name: Check format run: cargo fmt --all -- --check - name: Build run: cargo build --workspace - name: Test run: cargo test --workspace - name: Clippy run: cargo clippy --workspace --all-targets -- deny: name: cargo-deny runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install cargo-deny run: cargo install cargo-deny --locked - name: Check deny run: cargo deny check audit: name: cargo-audit runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Rust uses: dtolnay/rust-action@stable - name: Run audit run: | cargo install cargo-audit --locked cargo audit