en/.justfile

176 lines
2.9 KiB
Makefile

_default:
@just --list
watch_cmd := "watchexec -qc -r -e rs,toml,html --color always -- "
cover_cmd := 'cargo llvm-cov --ignore-filename-regex "main\.rs|dev\.rs"'
just_cmd := 'just --unstable --timestamp --explain --command-color green'
# DEV
# Start server
[group: 'develop']
run:
cargo run -- --hostname localhost --port 3003
alias r := run
# Build on changes
[group: 'develop']
run-watch:
{{ watch_cmd }} {{ just_cmd }} run
alias rw := run-watch
alias dev := run-watch
alias d := run-watch
# Run all assessments on changes
[group: 'develop']
verify-watch:
{{ watch_cmd }} {{ just_cmd }} verify
alias vw := verify-watch
# Run tests on changes
[group: 'develop']
test-watch:
{{ watch_cmd }} {{ just_cmd }} test
alias tw := test-watch
# Run tests with coverage reports on changes
[group: 'develop']
cover-watch:
{{ watch_cmd }} {{ just_cmd }} cover-report
alias ow := cover-watch
# Run cargo check on changes
[group: 'develop']
check-watch:
{{ watch_cmd }} {{ just_cmd }} check
alias cw := check-watch
# Lint on changes
[group: 'develop']
lint-watch:
{{ watch_cmd }} {{ just_cmd }} lint
alias lw := lint-watch
# Assess formatting on changes
[group: 'develop']
format-watch:
{{ watch_cmd }} {{ just_cmd }} format-assess
alias fw := format-watch
# Format all files
[group: 'develop']
format:
cargo fmt
alias f := format
# Verify before push
[group: 'develop']
push: verify
git push
alias p := push
# ANALYSIS
# Run all analysis
[group: 'assess']
verify: format-assess lint check test cover-assess
alias v := verify
# Assess coverage
[group: 'assess']
cover-assess:
{{ cover_cmd }} --fail-under-regions 90 report
# Assess formatting
[group: 'assess']
format-assess:
cargo fmt -- --check
alias fc := format-assess
# Lint with Clippy
[group: 'assess']
lint:
cargo clippy
alias l := lint
# Run cargo check
[group: 'assess']
check:
cargo check --workspace
alias c := check
# Run tests
[group: 'assess']
test:
cargo test -- --skip 'serial_tests::'
cargo test -- --test 'serial_tests::' --test-threads 1
alias t := test
# Run tests with coverage
[group: 'assess']
cover:
{{ cover_cmd }} --no-report -- --skip 'serial_tests::'
{{ cover_cmd }} --no-report -- --test 'serial_tests::' --test-threads 1
alias o := cover
## COVER
# Make coverage report
[group: 'cover']
cover-report: cover
{{ cover_cmd }} report --html
{{ cover_cmd }} report
alias or := cover-report
# Open coverage report
[group: 'cover']
cover-open: cover
{{ cover_cmd }} report --open
alias oo := cover-open
# BUILD
# Build project with Cargo
[group: 'build']
build:
cargo build
alias b := build
# Cleanup build artifacts
[group: 'build']
clean:
cargo clean
alias cl := clean
# Clean, run assessments, release build
[group: 'build']
full-build: clean verify release-build
alias fb := full-build
# Release build
[group: 'build']
release-build: verify
cargo build --release
alias rb := release-build