diff --git a/.circleci/config.yml b/.circleci/config.yml index 349b54863..bc2a3e682 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -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" diff --git a/.travis.yml b/.travis.yml index 7a86d6a86..36e909864 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,8 +12,8 @@ env: git: depth: false go: - - "1.13.11" - - "1.14.3" + - "1.14.7" + - "1.15" - master arch: diff --git a/goreleaser.yml b/goreleaser.yml index 12afc286c..ade98c109 100644 --- a/goreleaser.yml +++ b/goreleaser.yml @@ -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: diff --git a/magefile.go b/magefile.go index 335bcf1e5..89b7c895d 100644 --- a/magefile.go +++ b/magefile.go @@ -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 +} diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index b7d45a780..562676c82 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -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