Use groups in justfile

This commit is contained in:
Greg Shuflin 2024-07-16 11:27:29 -07:00
parent a3693f3e8f
commit ba89f94e7e

View File

@ -13,18 +13,24 @@ export JUST_LOG := log
watch +args='test':
cargo watch --clear --exec '{{ args }}'
[group: "testing"]
[doc: "Run just test suite"]
test:
cargo test
ci: lint build-book
cargo test --all
# Run lint checks
[group: "code-checking"]
lint:
cargo clippy --all --all-targets -- --deny warnings
./bin/forbid
cargo fmt --all -- --check
cargo update --locked --package just
[group: "testing"]
[doc: "Run fuzz tests"]
fuzz:
cargo +nightly fuzz run fuzz-compiler
@ -32,33 +38,46 @@ run:
cargo run
# only run tests matching PATTERN
[group: "testing"]
filter PATTERN:
cargo test {{PATTERN}}
# Build just
[group: "developer-workflow"]
build:
cargo build
[group: "code-checking"]
fmt:
cargo fmt --all
[group: "code-checking"]
shellcheck:
shellcheck www/install.sh
# Generate the just manpage
[group: "documentation"]
man:
mkdir -p man
cargo run -- --man > man/just.1
# View the Just manpage
[group: "documentation"]
view-man: man
man man/just.1
# add git log messages to changelog
[group: "developer-workflow"]
update-changelog:
echo >> CHANGELOG.md
git log --pretty='format:- %s' >> CHANGELOG.md
# Update the contributors file
[group: "developer-workflow"]
update-contributors:
cargo run --release --package update-contributors
[group: "code-checking"]
check: fmt clippy test forbid
#!/usr/bin/env bash
set -euxo pipefail
@ -70,6 +89,7 @@ outdated:
cargo outdated -R
# publish current GitHub master branch
[group: "developer-workflow"]
publish:
#!/usr/bin/env bash
set -euxo pipefail
@ -84,13 +104,19 @@ publish:
cd ../..
rm -rf tmp/release
[group: "documentation"]
[doc: "Search for master version note subscripts in the README"]
readme-version-notes:
grep '<sup>master</sup>' README.md
[group: "developer-workflow"]
[doc: "Push to GitHub"]
push: check
! git branch | grep '* master'
git push github
[group: "developer-workflow"]
[doc: "Create a pull request"]
pr: push
gh pr create --web
@ -116,6 +142,7 @@ install-dev-deps:
cargo install mdbook mdbook-linkcheck
# everyone's favorite animate paper clip
[group: "code-checking"]
clippy:
cargo clippy --all --all-targets --all-features
@ -123,16 +150,19 @@ forbid:
./bin/forbid
# count non-empty lines of code
[group: "developer-workflow"]
sloc:
@cat src/*.rs | sed '/^\s*$/d' | wc -l
replace FROM TO:
sd '{{FROM}}' '{{TO}}' src/*.rs
[group: "demo-recipes"]
test-quine:
cargo run -- quine
# make a quine, compile it, and verify it
[group: "demo-recipes"]
quine:
mkdir -p tmp
@echo '{{quine-text}}' > tmp/gen0.c
@ -160,19 +190,24 @@ quine-text := '
}
'
[group: "documentation"]
render-readme:
#!/usr/bin/env ruby
require 'github/markup'
$rendered = GitHub::Markup.render("README.adoc", File.read("README.adoc"))
File.write('tmp/README.html', $rendered)
[group: "documentation"]
watch-readme:
just render-readme
fswatch -ro README.adoc | xargs -n1 -I{} just render-readme
# Test shell completions
[group: "testing"]
test-completions:
./tests/completions/just.bash
[group: "documentation"]
build-book:
cargo run --package generate-book
mdbook build book/en
@ -190,6 +225,7 @@ convert-integration-test test:
-e 's/\.run\(\)/.run();/'
# run all polyglot recipes
[group: "demo-recipes"]
polyglot: _python _js _perl _sh _ruby
_python:
@ -219,9 +255,11 @@ _ruby:
puts "Hello from ruby!"
# Print working directory, for demonstration purposes!
[group: "demo-recipes"]
pwd:
echo {{invocation_directory()}}
[group: "testing"]
test-bash-completions:
rm -rf tmp
mkdir -p tmp/bin