|
1 | | -set ignore-comments := true |
| 1 | +cargo := require('cargo') |
| 2 | +cargo-set-version := require('cargo-set-version') |
| 3 | +gh := require('gh') |
| 4 | +git := require('git') |
| 5 | +gpg := require('gpg') |
| 6 | +just := just_executable() |
| 7 | +make := require('make') |
| 8 | +taplo := require('taplo') |
| 9 | + |
| 10 | +set script-interpreter := ["zsh", "+o", "nomatch", "-eu"] |
2 | 11 | set shell := ["zsh", "+o", "nomatch", "-ecu"] |
| 12 | +set positional-arguments := true |
3 | 13 | set unstable := true |
4 | | -set script-interpreter := ["zsh", "+o", "nomatch", "-eu"] |
5 | | - |
6 | | -_default: |
7 | | - @just --list --unsorted |
8 | 14 |
|
| 15 | +[default] |
9 | 16 | [private] |
| 17 | +@list: |
| 18 | + {{ just }} --list --unsorted |
| 19 | + |
| 20 | +nuke-n-pave: |
| 21 | + {{ git }} clean -dxff -e .husky -e target -e completions |
| 22 | + ./bootstrap.sh |
| 23 | + |
| 24 | +dev-conf: nuke-n-pave |
| 25 | + ./configure --enable-developer-mode --enable-debug |
| 26 | + {{ make }} |
| 27 | + |
| 28 | +rel-conf: nuke-n-pave |
| 29 | + ./configure --enable-developer-mode |
| 30 | + {{ make }} |
| 31 | + |
| 32 | +[parallel] |
| 33 | +build: |
| 34 | + {{ make }} $0 |
| 35 | + |
| 36 | +check: |
| 37 | + {{ make }} $0 |
| 38 | + |
| 39 | +lint: |
| 40 | + {{ make }} $0 |
| 41 | + |
| 42 | +perfect: |
| 43 | + {{ make }} build check lint |
| 44 | + |
10 | 45 | [doc('Block execution if Git working tree isn’t pristine.')] |
| 46 | +[private] |
11 | 47 | pristine: |
12 | | - # Ensure there are no changes in staging |
13 | | - git diff-index --quiet --cached HEAD || exit 1 |
14 | | - # Ensure there are no changes in the working tree |
15 | | - git diff-files --quiet || exit 1 |
| 48 | + # Make sure Git's status cache is warmed up |
| 49 | + {{ git }} diff --shortstat |
| 50 | + # Ensure there are no changes in staging |
| 51 | + {{ git }} diff-index --quiet --cached HEAD || exit 1 |
| 52 | + # Ensure there are no changes in the working tree |
| 53 | + {{ git }} diff-files --quiet || exit 1 |
16 | 54 |
|
17 | | -[private] |
18 | 55 | [doc('Block execution if we don’t have access to private keys.')] |
| 56 | +[private] |
19 | 57 | keys: |
20 | | - gpg -a --sign > /dev/null <<< "test" |
| 58 | + {{ gpg }} -a --sign > /dev/null <<< "test" |
21 | 59 |
|
22 | 60 | release semver: pristine keys |
23 | | - cargo-set-version set-version {{semver}} |
24 | | - taplo format Cargo.toml |
25 | | - sed -i -e "/^git-warp-time =/s/\".*\"/\"${${:-{{semver}}}%\.*}\"/" README.md |
26 | | - sed -i -e "/image:/s/:v.*/:v{{semver}}/" action.yml |
27 | | - make SEMVER={{semver}} CHANGELOG.md git-warp-time-{{semver}}.md -B |
28 | | - git add Cargo.{toml,lock} README.md CHANGELOG.md action.yml |
29 | | - git commit -m "chore: Release v{{semver}}" |
30 | | - git tag -s v{{semver}} -F git-warp-time-{{semver}}.md |
31 | | - cargo build |
32 | | - git diff-files --quiet || exit 1 |
33 | | - ./config.status && make |
34 | | - git push --atomic origin master v{{semver}} |
35 | | - cargo publish --locked |
| 61 | + {{ cargo-set-version }} set-version {{ semver }} |
| 62 | + {{ taplo }} format Cargo.toml |
| 63 | + sed -i -e "/^git-warp-time =/s/\".*\"/\"${${:-{{ semver }}}%\.*}\"/" README.md |
| 64 | + sed -i -e "/image:/s/:v.*/:v{{ semver }}/" action.yml |
| 65 | + {{ make }} SEMVER={{ semver }} CHANGELOG.md git-warp-time-{{ semver }}.md -B |
| 66 | + {{ git }} add Cargo.{toml,lock} README.md CHANGELOG.md action.yml |
| 67 | + {{ git }} commit -m "chore: Release v{{ semver }}" |
| 68 | + {{ git }} tag -s v{{ semver }} -F git-warp-time-{{ semver }}.md |
| 69 | + {{ just }} build |
| 70 | + {{ git }} diff-files --quiet || exit 1 |
| 71 | + ./config.status && {{ make }} |
| 72 | + {{ git }} push --atomic origin master v{{ semver }} |
| 73 | + {{ cargo }} publish --locked |
36 | 74 |
|
37 | 75 | post-release semver: keys |
38 | | - gh release download v{{semver}} |
39 | | - ls git-warp-time-{{semver}}.{tar.zst,zip} | xargs -n1 gpg -a --detach-sign |
40 | | - gh release upload v{{semver}} git-warp-time-{{semver}}.{tar.zst,zip}.asc |
41 | | - |
42 | | -# vim: set ft=just |
| 76 | + {{ gh }} release download v{{ semver }} --skip-existing |
| 77 | + ls git-warp-time-{{ semver }}.{tar.zst,zip} | xargs -n1 {{ gpg }} -a --detach-sign |
| 78 | + {{ gh }} release upload v{{ semver }} git-warp-time-{{ semver }}.{tar.zst,zip}.asc |
0 commit comments