mirror of
https://github.com/gohugoio/hugo.git
synced 2024-12-27 21:21:14 +00:00
mage: Init packages once
`go list ./...` fails when run in parallel on Windows. This also applies to running `go test ./...` and `go list/...` so we serialize tests.
This commit is contained in:
parent
293e12355d
commit
ea8ef573c6
1 changed files with 24 additions and 11 deletions
35
magefile.go
35
magefile.go
|
@ -12,6 +12,7 @@ import (
|
|||
"path/filepath"
|
||||
"runtime"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/magefile/mage/mg"
|
||||
|
@ -98,7 +99,11 @@ func Check() {
|
|||
fmt.Printf("Skip Check on %s\n", runtime.Version())
|
||||
return
|
||||
}
|
||||
mg.Deps(Test386, Fmt, Vet)
|
||||
|
||||
mg.Deps(Test386)
|
||||
|
||||
mg.Deps(Fmt, Vet)
|
||||
|
||||
// don't run two tests in parallel, they saturate the CPUs anyway, and running two
|
||||
// causes memory issues in CI.
|
||||
mg.Deps(TestRace)
|
||||
|
@ -161,18 +166,26 @@ func Fmt() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
var pkgPrefixLen = len("github.com/gohugoio/hugo")
|
||||
var (
|
||||
pkgPrefixLen = len("github.com/gohugoio/hugo")
|
||||
pkgs []string
|
||||
pkgsInit sync.Once
|
||||
)
|
||||
|
||||
func hugoPackages() ([]string, error) {
|
||||
s, err := sh.Output(goexe, "list", "./...")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
pkgs := strings.Split(s, "\n")
|
||||
for i := range pkgs {
|
||||
pkgs[i] = "." + pkgs[i][pkgPrefixLen:]
|
||||
}
|
||||
return pkgs, nil
|
||||
var err error
|
||||
pkgsInit.Do(func() {
|
||||
var s string
|
||||
s, err = sh.Output(goexe, "list", "./...")
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
pkgs = strings.Split(s, "\n")
|
||||
for i := range pkgs {
|
||||
pkgs[i] = "." + pkgs[i][pkgPrefixLen:]
|
||||
}
|
||||
})
|
||||
return pkgs, err
|
||||
}
|
||||
|
||||
// Run golint linter
|
||||
|
|
Loading…
Reference in a new issue