set shell := ["bash", "-eu", "-o", "pipefail", "-c"]
set dotenv-load := false
export PATH := env("HOME") + "/.cargo/bin:" + env("HOME") + "/.local/bin:" + env("PATH")
default: check
check:
cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo check --workspace --all-targets --all-features
cargo check --workspace --no-default-features
test:
cargo test --workspace --all-features
fmt:
cargo fmt --all
# Dependency-graph checks (advisories, licenses, duplicates, sources).
# Needs cargo-deny: cargo install cargo-deny --locked
deny:
cargo deny check
# Line-coverage gate, same threshold as CI. The floor sits at the 90% target;
# raise it here and in ci.yml together if coverage climbs further. Needs
# cargo-llvm-cov: cargo install cargo-llvm-cov --locked
cov:
cargo llvm-cov --workspace --all-features --fail-under-lines 90
# HTML coverage report at target/llvm-cov/html/index.html, for finding the
# uncovered lines the gate complains about.
cov-html:
cargo llvm-cov --workspace --all-features --html
build:
cargo build --workspace --release --all-features
clean:
cargo clean
ci: check test