1
- //+build mage
1
+ //go:build mage
2
+ // +build mage
2
3
3
4
// This is the build script for Mage. The install target is all you really need.
4
5
// The release target is for generating official releases and is really only
@@ -9,6 +10,7 @@ import (
9
10
"errors"
10
11
"fmt"
11
12
"os"
13
+ "os/exec"
12
14
"path/filepath"
13
15
"regexp"
14
16
"runtime"
@@ -69,6 +71,9 @@ var releaseTag = regexp.MustCompile(`^v1\.[0-9]+\.[0-9]+$`)
69
71
70
72
// Generates a new release. Expects a version tag in v1.x.x format.
71
73
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
+ }
72
77
if ! releaseTag .MatchString (tag ) {
73
78
return errors .New ("TAG environment variable must be in semver v1.x.x format, but was " + tag )
74
79
}
@@ -81,8 +86,8 @@ func Release(tag string) (err error) {
81
86
}
82
87
defer func () {
83
88
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 )
86
91
}
87
92
}()
88
93
return sh .RunV ("goreleaser" )
0 commit comments