when:
- event: ["push", "pull_request"]
branch: master
paths:
- bobbin/**
- crates/**
- knot2/**
- knotmirror/**
- shuttle/**
- lexicons/**
- Cargo.toml
- Cargo.lock
- rust-toolchain.toml
- .tangled/workflows/rust-checks.yml
engine: microvm
image: nixos-large
dependencies:
- gcc
- gnumake
- cmake
- perl
- gawk
- gnused
- gnugrep
- findutils
- protobuf
- just
- git
- "github:nix-community/fenix/f6670530f53e69cc284f7aef818eb0f08fe81905#stable.defaultToolchain"
environment:
CARGO_HOME: /workspace/repo/.cache/cargo
CARGO_INCREMENTAL: "0"
# cargo's built-in git client takes 10 minutes to clone jacquard here
CARGO_NET_GIT_FETCH_WITH_CLI: "true"
CARGO_PROFILE_DEV_DEBUG: "0"
cache:
- key: cargo-checks
hash:
- Cargo.lock
fallback: true
when: always
paths:
- .cache/cargo/registry/index
- .cache/cargo/registry/cache
- target
steps:
- name: knot architecture checks
command: |
cd knot2 && just checks
- name: lints
command: |
cargo clippy --locked --workspace --all-targets -- -D warnings