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