Use groups in justfile
This commit is contained in:
parent
a3693f3e8f
commit
ba89f94e7e
38
justfile
38
justfile
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user