Files
arr/Justfile
T
ClaudeandClaude Opus 5 f4e63f1ac5 chore: cargo workspace skeleton
Eleven empty crates per DESIGN.md §11, versions and lints pinned once in the
root manifest, Justfile carrying the §12 gate, nix dev shell.

The frontend steps in `just ci` no-op until web/ exists. arr-core carries one
placeholder test because `cargo nextest` fails a zero-test run, and relaxing
that would let a broken filter go green later.

Closes #1

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 19:20:47 +01:00

56 lines
1.4 KiB
Makefile

# Dev entry points. `just` with no args lists them.
# The full per-push gate, same as CI. Run this before pushing.
ci: fmt-check lint deps test web-check
# Formatting, checked not applied.
fmt-check:
cargo fmt --all -- --check
# Format every Rust source.
fmt:
cargo fmt --all
# Clippy, warnings denied.
lint:
cargo clippy --all-targets -- -D warnings
# Unused workspace dependencies. Stable toolchain, unlike cargo-udeps.
deps:
cargo machete
# Unit and integration tests, excluding the e2e crate.
test:
cargo nextest run --workspace --exclude arr-e2e
# End-to-end tests. Needs a Transmission container; not part of the push gate.
e2e:
cargo nextest run -p arr-e2e
# Frontend lint and typecheck. No-op until web/ exists (issue #6).
web-check:
#!/usr/bin/env bash
set -euo pipefail
if [ ! -d web ]; then echo "web/ not present yet, skipping"; exit 0; fi
biome ci web/
pnpm -C web install --frozen-lockfile
pnpm -C web exec tsc -b --noEmit
# Build the SPA and the binary that embeds it.
build:
#!/usr/bin/env bash
set -euo pipefail
if [ -d web ]; then
pnpm -C web install --frozen-lockfile
pnpm -C web build
fi
cargo build --release
# Advisory and licence scan. Scheduled, not part of the push gate.
audit:
cargo deny check
# Install the tools the gate needs.
setup:
cargo install cargo-nextest cargo-machete --locked