From edccc6edde06a21cfd300a946c3b1f839ad979d4 Mon Sep 17 00:00:00 2001 From: Nate Finch Date: Tue, 14 Dec 2021 12:10:40 -0500 Subject: [PATCH 1/2] this fixes the rollback mechanism for tags during a release --- magefile.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/magefile.go b/magefile.go index 9dd418fa..3d83db87 100644 --- a/magefile.go +++ b/magefile.go @@ -1,4 +1,5 @@ -//+build mage +//go:build mage +// +build mage // This is the build script for Mage. The install target is all you really need. // The release target is for generating official releases and is really only @@ -81,8 +82,8 @@ func Release(tag string) (err error) { } defer func() { if err != nil { - sh.RunV("git", "tag", "--delete", "$TAG") - sh.RunV("git", "push", "--delete", "origin", "$TAG") + sh.RunV("git", "tag", "--delete", tag) + sh.RunV("git", "push", "--delete", "origin", tag) } }() return sh.RunV("goreleaser") From f632382065550b6a7eb4639ae4377110b27e7117 Mon Sep 17 00:00:00 2001 From: Nate Finch Date: Tue, 14 Dec 2021 12:25:03 -0500 Subject: [PATCH 2/2] check for goreleaser before we do anything else --- magefile.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/magefile.go b/magefile.go index 3d83db87..c08ffa37 100644 --- a/magefile.go +++ b/magefile.go @@ -10,6 +10,7 @@ import ( "errors" "fmt" "os" + "os/exec" "path/filepath" "regexp" "runtime" @@ -70,6 +71,9 @@ var releaseTag = regexp.MustCompile(`^v1\.[0-9]+\.[0-9]+$`) // Generates a new release. Expects a version tag in v1.x.x format. func Release(tag string) (err error) { + if _, err := exec.LookPath("goreleaser"); err != nil { + return fmt.Errorf("can't find goreleaser: %w", err) + } if !releaseTag.MatchString(tag) { return errors.New("TAG environment variable must be in semver v1.x.x format, but was " + tag) }