Skip to content

Commit fd5011e

Browse files
authored
Fix the rollback mechanism for tags during a release (magefile#392)
* this fixes the rollback mechanism for tags during a release * check for goreleaser before we do anything else
1 parent 404c119 commit fd5011e

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

magefile.go

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
//+build mage
1+
//go:build mage
2+
// +build mage
23

34
// This is the build script for Mage. The install target is all you really need.
45
// The release target is for generating official releases and is really only
@@ -9,6 +10,7 @@ import (
910
"errors"
1011
"fmt"
1112
"os"
13+
"os/exec"
1214
"path/filepath"
1315
"regexp"
1416
"runtime"
@@ -69,6 +71,9 @@ var releaseTag = regexp.MustCompile(`^v1\.[0-9]+\.[0-9]+$`)
6971

7072
// Generates a new release. Expects a version tag in v1.x.x format.
7173
func Release(tag string) (err error) {
74+
if _, err := exec.LookPath("goreleaser"); err != nil {
75+
return fmt.Errorf("can't find goreleaser: %w", err)
76+
}
7277
if !releaseTag.MatchString(tag) {
7378
return errors.New("TAG environment variable must be in semver v1.x.x format, but was " + tag)
7479
}
@@ -81,8 +86,8 @@ func Release(tag string) (err error) {
8186
}
8287
defer func() {
8388
if err != nil {
84-
sh.RunV("git", "tag", "--delete", "$TAG")
85-
sh.RunV("git", "push", "--delete", "origin", "$TAG")
89+
sh.RunV("git", "tag", "--delete", tag)
90+
sh.RunV("git", "push", "--delete", "origin", tag)
8691
}
8792
}()
8893
return sh.RunV("goreleaser")

0 commit comments

Comments
 (0)