diff --git a/DEVELOPING.md b/DEVELOPING.md index 7899a10..208cd57 100644 --- a/DEVELOPING.md +++ b/DEVELOPING.md @@ -4,6 +4,7 @@ - Go (see `go.mod` for minimum version) - [prek](https://github.com/j178/prek) — a faster drop-in for `pre-commit` (`pre-commit` also works if preferred) +- [task](https://taskfile.dev/installation/) — task runner used for release workflows ## Setup diff --git a/Taskfile.yml b/Taskfile.yml new file mode 100644 index 0000000..72dddc9 --- /dev/null +++ b/Taskfile.yml @@ -0,0 +1,43 @@ +version: '3' + +tasks: + next-version: + desc: Print the next version based on unreleased commits + cmds: + - git-cliff --bumped-version + + changelog: + desc: "Update CHANGELOG.md for a release (usage: task changelog -- v0.2.0)" + requires: + vars: [CLI_ARGS] + vars: + TAG: '{{.CLI_ARGS}}' + cmds: + - "git-cliff --unreleased --tag {{.TAG}} --prepend CHANGELOG.md" + + release-commit: + desc: "Commit staged release changes (usage: task release-commit -- v0.2.0)" + requires: + vars: [CLI_ARGS] + vars: + TAG: '{{.CLI_ARGS}}' + cmds: + - "git commit -am 'chore: release {{.TAG}}'" + + tag: + desc: "Tag and push a release (usage: task tag -- v0.2.0)" + requires: + vars: [CLI_ARGS] + vars: + TAG: '{{.CLI_ARGS}}' + cmds: + - "git tag {{.TAG}}" + - git push + - git push --tags + + # Help and info + default: + desc: Show available tasks + cmds: + - task --list + silent: true