Repository navigation
Expand file tree
/
Copy pathjustfile
More file actions
46 lines (37 loc) · 1.41 KB
/
Copy pathjustfile
File metadata and controls
46 lines (37 loc) · 1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# splicefeed build/dev tasks. https://github.com/casey/just
default: build
# Debug build of the whole workspace.
build:
cargo build --workspace
# Run all tests.
test:
cargo test --workspace
# Format check + clippy with warnings denied.
lint:
cargo fmt --all --check
cargo clippy --workspace --all-targets -- -D warnings
# Enforce the library/binary boundary (DESIGN.md "Workspace layout"):
# the facade lib must build in isolation and must not pull in server/TUI/
# CLI/exporter crates. Run in CI.
check-boundary:
#!/usr/bin/env bash
set -euo pipefail
cargo build -p splicefeed
banned='axum|ratatui|crossterm|clap|opentelemetry'
if cargo tree -p splicefeed --edges normal | grep -E "^\S*($banned)"; then
echo "ERROR: banned crate in the splicefeed library dependency tree" >&2
exit 1
fi
echo "boundary OK: no banned crates in the library tree"
# Regenerate THIRD-PARTY-LICENSES.md from the dependency tree. Run after
# changing dependencies. Needs: cargo install cargo-about --features cli
licenses:
cargo about generate about.hbs -o THIRD-PARTY-LICENSES.md
# Release build for the host platform (single self-contained binary).
release:
cargo build --workspace --release
# Release build for Apple Silicon; run on a macOS host.
release-macos:
cargo build -p splicefeed-daemon --release --target aarch64-apple-darwin
# Everything CI runs.
ci: lint test check-boundary