Update to Go 1.15
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Fri, 14 Aug 2020 10:03:22 +0000 (12:03 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sun, 16 Aug 2020 19:37:26 +0000 (21:37 +0200)
Fixes #7554

.circleci/config.yml
.travis.yml
goreleaser.yml
magefile.go
snap/snapcraft.yaml

index 349b5486306b5552b1656df1ccebd79f0b4ce94b..bc2a3e682a69906a97dcdff8bececcf7aef5fc34 100644 (file)
@@ -1,6 +1,6 @@
 defaults: &defaults
   docker:
-      - image: bepsays/ci-goreleaser:1.14.3
+      - image: bepsays/ci-goreleaser:1.15.0
   environment:
     CGO_ENABLED: "0"
 
index 7a86d6a86007009c4369803da4ef64f0e5e75121..36e90986449bca5370ada59c9a88f6e755552d22 100644 (file)
@@ -12,8 +12,8 @@ env:
 git:
   depth: false
 go:
-  - "1.13.11"
-  - "1.14.3"
+  - "1.14.7"
+  - "1.15"
   - master
 
 arch:
index 12afc286c837a73612cfd080f6a88f8f218b163c..ade98c10937b455e23decc99587a85a38ef15fc2 100644 (file)
@@ -12,6 +12,9 @@ builds:
     ldflags: -s -w -X github.com/gohugoio/hugo/common/hugo.buildDate={{.Date}} -X github.com/gohugoio/hugo/common/hugo.commitHash={{ .ShortCommit }}
     env:
       - CGO_ENABLED=0
+    flags:
+      - -buildmode
+      - exe
     goos:
       - darwin
       - linux
@@ -39,6 +42,8 @@ builds:
       - CC=x86_64-w64-mingw32-gcc
       - CXX=x86_64-w64-mingw32-g++
     flags:
+      - -buildmode
+      - exe
       - -tags
       - extended
     goos:
@@ -53,6 +58,8 @@ builds:
       - CC=o64-clang
       - CXX=o64-clang++
     flags:
+      - -buildmode
+      - exe
       - -tags
       - extended
     goos:
@@ -65,6 +72,8 @@ builds:
     env:
       - CGO_ENABLED=1
     flags:
+      - -buildmode
+      - exe
       - -tags
       - extended
     goos:
index 335bcf1e5b1b5fa1ecc651989ebcb0e893124dbd..89b7c895d93cb04eb1f88a167b0d61ee6d379cd5 100644 (file)
@@ -42,19 +42,25 @@ func init() {
        os.Setenv("GO111MODULE", "on")
 }
 
+func runWith(env map[string]string, cmd string, inArgs ...interface{}) error {
+       s := argsToStrings(inArgs...)
+       return sh.RunWith(env, cmd, s...)
+
+}
+
 // Build hugo binary
 func Hugo() error {
-       return sh.RunWith(flagEnv(), goexe, "build", "-ldflags", ldflags, "-tags", buildTags(), packageName)
+       return runWith(flagEnv(), goexe, "build", "-ldflags", ldflags, buildFlags(), "-tags", buildTags(), packageName)
 }
 
 // Build hugo binary with race detector enabled
 func HugoRace() error {
-       return sh.RunWith(flagEnv(), goexe, "build", "-race", "-ldflags", ldflags, "-tags", buildTags(), packageName)
+       return runWith(flagEnv(), goexe, "build", "-race", "-ldflags", ldflags, buildFlags(), "-tags", buildTags(), packageName)
 }
 
 // Install hugo binary
 func Install() error {
-       return sh.RunWith(flagEnv(), goexe, "install", "-ldflags", ldflags, "-tags", buildTags(), packageName)
+       return runWith(flagEnv(), goexe, "install", "-ldflags", ldflags, buildFlags(), "-tags", buildTags(), packageName)
 }
 
 // Uninstall hugo binary
@@ -79,7 +85,7 @@ func Generate() error {
        }
 
        for _, pkg := range generatorPackages {
-               if err := sh.RunWith(flagEnv(), goexe, "generate", path.Join(packageName, pkg)); err != nil {
+               if err := runWith(flagEnv(), goexe, "generate", path.Join(packageName, pkg)); err != nil {
                        return err
                }
        }
@@ -176,13 +182,13 @@ func Test386() error {
 // Run tests
 func Test() error {
        env := map[string]string{"GOFLAGS": testGoFlags()}
-       return runCmd(env, goexe, "test", "./...", "-tags", buildTags())
+       return runCmd(env, goexe, "test", "./...", buildFlags(), "-tags", buildTags())
 }
 
 // Run tests with race detector
 func TestRace() error {
        env := map[string]string{"GOFLAGS": testGoFlags()}
-       return runCmd(env, goexe, "test", "-race", "./...", "-tags", buildTags())
+       return runCmd(env, goexe, "test", "-race", "./...", buildFlags(), "-tags", buildTags())
 }
 
 // Run gofmt linter
@@ -318,11 +324,11 @@ func TestCoverHTML() error {
        return sh.Run(goexe, "tool", "cover", "-html="+coverAll)
 }
 
-func runCmd(env map[string]string, cmd string, args ...string) error {
+func runCmd(env map[string]string, cmd string, args ...interface{}) error {
        if mg.Verbose() {
-               return sh.RunWith(env, cmd, args...)
+               return runWith(env, cmd, args...)
        }
-       output, err := sh.OutputWith(env, cmd, args...)
+       output, err := sh.OutputWith(env, cmd, argsToStrings(args...)...)
        if err != nil {
                fmt.Fprint(os.Stderr, output)
        }
@@ -338,6 +344,13 @@ func isCI() bool {
        return os.Getenv("CI") != ""
 }
 
+func buildFlags() []string {
+       if runtime.GOOS == "windows" {
+               return []string{"-buildmode", "exe"}
+       }
+       return nil
+}
+
 func buildTags() string {
        // To build the extended Hugo SCSS/SASS enabled version, build with
        // HUGO_BUILD_TAGS=extended mage install etc.
@@ -346,3 +359,23 @@ func buildTags() string {
        }
        return "none"
 }
+
+func argsToStrings(v ...interface{}) []string {
+       var args []string
+       for _, arg := range v {
+               switch v := arg.(type) {
+               case string:
+                       if v != "" {
+                               args = append(args, v)
+                       }
+               case []string:
+                       if v != nil {
+                               args = append(args, v...)
+                       }
+               default:
+                       panic("invalid type")
+               }
+       }
+
+       return args
+}
index b7d45a7809429e639ef80014f3a46a278bf5a872..562676c827fb2de998d435b0f056ff9cce06a091 100644 (file)
@@ -26,7 +26,7 @@ parts:
 
   hugo:
     plugin: nil
-    build-snaps: [go/1.14/stable]
+    build-snaps: [go/1.15/stable]
     source: .
     override-build: |
       set -ex