Sebastian Mark
74ee5f3693
- add a precondition to ensure the working tree is clean before releasing
🤖
36 lines
994 B
YAML
36 lines
994 B
YAML
# yaml-language-server: $schema=https://taskfile.dev/schema.json
|
|
#
|
|
# github.com/go-task/task/v3/cmd/task@latest
|
|
# Requirements:
|
|
# github.com/caarlos0/svu@latest
|
|
# github.com/goreleaser/goreleaser/v2@latest
|
|
|
|
version: '3'
|
|
|
|
tasks:
|
|
|
|
release:
|
|
desc: Create and publish an new release
|
|
vars:
|
|
RELEASE:
|
|
sh: svu next
|
|
BRANCH:
|
|
sh: git branch --show-current
|
|
COMMIT:
|
|
sh: git rev-parse --short --verify {{.BRANCH}}
|
|
preconditions:
|
|
- sh: test "{{.BRANCH}}" == "main"
|
|
msg: "You must be on the main branch to release"
|
|
- sh: test -z "$(git status --porcelain)"
|
|
msg: "You must have a clean working tree to release"
|
|
prompt: Create new release {{.RELEASE}} from {{.COMMIT}}@{{.BRANCH}}?
|
|
cmds:
|
|
- git tag {{.RELEASE}}
|
|
- git push
|
|
- git push origin tag {{.RELEASE}}
|
|
- goreleaser release --clean
|
|
|
|
snapshot:
|
|
desc: Create a local snapshot release
|
|
cmds:
|
|
- goreleaser release --clean --snapshot
|