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+ }
7277if ! releaseTag .MatchString (tag ) {
7378return 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}
8287defer func () {
8388if 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}()
8893return sh .RunV ("goreleaser" )
0 commit comments