# 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