name: CI
on:
push:
branches: [main]
pull_request:
permissions:
contents: read
jobs:
fmt:
name: fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 with:
toolchain: stable
components: rustfmt
- run: cargo fmt --check --all
clippy:
name: clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 with:
toolchain: stable
components: clippy
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 with:
shared-key: "ci"
- run: cargo clippy --workspace -- -D warnings
test:
name: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 with:
toolchain: stable
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 with:
shared-key: "ci"
- run: cargo check --workspace
- run: cargo test --workspace
dependency-rules:
name: dependency-rules
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - name: Check layer dependency rules
run: bash scripts/check-layer-deps.sh
deny:
name: deny
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 with:
toolchain: stable
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 with:
shared-key: "ci"
- uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 with:
path: |
~/.cargo/bin/cargo-deny
~/.cargo/.crates.toml
~/.cargo/.crates2.json
key: cargo-deny-${{ runner.os }}-0.19.4-v2
- name: Install cargo-deny (if missing)
run: |
if command -v cargo-deny >/dev/null 2>&1 && [ "$(cargo deny --version | awk '{ print $2 }')" = "0.19.4" ]; then
echo "cargo-deny 0.19.4 already installed; skipping install."
else
cargo install cargo-deny --version 0.19.4 --locked
fi
- name: Run cargo-deny
run: cargo deny check