aboutsummaryrefslogtreecommitdiffstats
path: root/build/ci.go
diff options
context:
space:
mode:
Diffstat (limited to 'build/ci.go')
-rw-r--r--build/ci.go17
1 files changed, 15 insertions, 2 deletions
diff --git a/build/ci.go b/build/ci.go
index cf43969f6..3dca47fad 100644
--- a/build/ci.go
+++ b/build/ci.go
@@ -141,7 +141,6 @@ func doInstall(cmdline []string) {
log.Println("be compiled with an earlier version. Please upgrade your Go installation.")
os.Exit(1)
}
-
// Compile packages given as arguments, or everything if there are no arguments.
packages := []string{"./..."}
if flag.NArg() > 0 {
@@ -178,6 +177,7 @@ func goTool(subcmd string, args ...string) *exec.Cmd {
cmd := exec.Command(gocmd, subcmd)
cmd.Args = append(cmd.Args, args...)
cmd.Env = []string{
+ "GO15VENDOREXPERIMENT=1",
"GOPATH=" + build.GOPATH(),
"GOBIN=" + GOBIN,
}
@@ -200,11 +200,24 @@ func doTest(cmdline []string) {
coverage = flag.Bool("coverage", false, "Whether to record code coverage")
)
flag.CommandLine.Parse(cmdline)
+
packages := []string{"./..."}
if len(flag.CommandLine.Args()) > 0 {
packages = flag.CommandLine.Args()
}
-
+ if len(packages) == 1 && packages[0] == "./..." {
+ // Resolve ./... manually since go vet will fail on vendored stuff
+ out, err := goTool("list", "./...").CombinedOutput()
+ if err != nil {
+ log.Fatalf("package listing failed: %v\n%s", err, string(out))
+ }
+ packages = []string{}
+ for _, line := range strings.Split(string(out), "\n") {
+ if !strings.Contains(line, "vendor") {
+ packages = append(packages, strings.TrimSpace(line))
+ }
+ }
+ }
// Run analysis tools before the tests.
if *vet {
build.MustRun(goTool("vet", packages...))