mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-23 13:16:42 +00:00
build/ci.go: fix test/lint with multiple modules
This commit is contained in:
parent
cfe7323abd
commit
c38a49f13e
1 changed files with 25 additions and 19 deletions
44
build/ci.go
44
build/ci.go
|
|
@ -64,12 +64,6 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
// List of go modules for linting/testing/etc.
|
|
||||||
workspaceModules = []string{
|
|
||||||
".",
|
|
||||||
"./cmd/keeper",
|
|
||||||
}
|
|
||||||
|
|
||||||
// Files that end up in the geth*.zip archive.
|
// Files that end up in the geth*.zip archive.
|
||||||
gethArchiveFiles = []string{
|
gethArchiveFiles = []string{
|
||||||
"COPYING",
|
"COPYING",
|
||||||
|
|
@ -328,7 +322,7 @@ func doTest(cmdline []string) {
|
||||||
gotest.Args = append(gotest.Args, "-short")
|
gotest.Args = append(gotest.Args, "-short")
|
||||||
}
|
}
|
||||||
|
|
||||||
packages := workspacePackagePatterns()
|
packages := []string{"work"}
|
||||||
if len(flag.CommandLine.Args()) > 0 {
|
if len(flag.CommandLine.Args()) > 0 {
|
||||||
packages = flag.CommandLine.Args()
|
packages = flag.CommandLine.Args()
|
||||||
}
|
}
|
||||||
|
|
@ -370,7 +364,7 @@ func doCheckGenerate() {
|
||||||
protocPath = downloadProtoc(*cachedir)
|
protocPath = downloadProtoc(*cachedir)
|
||||||
protocGenGoPath = downloadProtocGenGo(*cachedir)
|
protocGenGoPath = downloadProtocGenGo(*cachedir)
|
||||||
)
|
)
|
||||||
c := tc.Go("generate", workspacePackagePatterns()...)
|
c := tc.Go("generate", "work")
|
||||||
pathList := []string{filepath.Join(protocPath, "bin"), protocGenGoPath, os.Getenv("PATH")}
|
pathList := []string{filepath.Join(protocPath, "bin"), protocGenGoPath, os.Getenv("PATH")}
|
||||||
c.Env = append(c.Env, "PATH="+strings.Join(pathList, string(os.PathListSeparator)))
|
c.Env = append(c.Env, "PATH="+strings.Join(pathList, string(os.PathListSeparator)))
|
||||||
build.MustRun(c)
|
build.MustRun(c)
|
||||||
|
|
@ -428,11 +422,31 @@ func doCheckBadDeps() {
|
||||||
func doLint(cmdline []string) {
|
func doLint(cmdline []string) {
|
||||||
var (
|
var (
|
||||||
cachedir = flag.String("cachedir", "./build/cache", "directory for caching golangci-lint binary.")
|
cachedir = flag.String("cachedir", "./build/cache", "directory for caching golangci-lint binary.")
|
||||||
|
tc = new(build.GoToolchain)
|
||||||
)
|
)
|
||||||
flag.CommandLine.Parse(cmdline)
|
flag.CommandLine.Parse(cmdline)
|
||||||
packages := workspacePackagePatterns()
|
|
||||||
if len(flag.CommandLine.Args()) > 0 {
|
packages := flag.CommandLine.Args()
|
||||||
packages = flag.CommandLine.Args()
|
if len(packages) == 0 {
|
||||||
|
// Get module directories in workspace.
|
||||||
|
listing, err := tc.Go("list", "-m").Output()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("go list failed:", err)
|
||||||
|
}
|
||||||
|
var mainModule []byte
|
||||||
|
for i, m := range bytes.Split(listing, []byte("\n")) {
|
||||||
|
m = bytes.TrimSpace(m)
|
||||||
|
if i == 0 {
|
||||||
|
mainModule = m
|
||||||
|
packages = append(packages, "./...")
|
||||||
|
} else if len(m) > 0 {
|
||||||
|
dir := string(bytes.TrimPrefix(m, mainModule))
|
||||||
|
packages = append(packages, "."+dir+"/...")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(packages) == 0 {
|
||||||
|
log.Fatal("no packages found")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
linter := downloadLinter(*cachedir)
|
linter := downloadLinter(*cachedir)
|
||||||
|
|
@ -1175,11 +1189,3 @@ func doSanityCheck() {
|
||||||
csdb := download.MustLoadChecksums("build/checksums.txt")
|
csdb := download.MustLoadChecksums("build/checksums.txt")
|
||||||
csdb.DownloadAndVerifyAll()
|
csdb.DownloadAndVerifyAll()
|
||||||
}
|
}
|
||||||
|
|
||||||
func workspacePackagePatterns() []string {
|
|
||||||
p := make([]string, len(workspaceModules))
|
|
||||||
for i := range workspaceModules {
|
|
||||||
p[i] = workspaceModules[i] + "/..."
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue