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.
7173func 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