Browse Source

appveyor, build: fix review requests

Péter Szilágyi 8 years ago
parent
commit
54fcab20e3
2 changed files with 31 additions and 25 deletions
  1. 1 1
      appveyor.yml
  2. 30 24
      build/ci.go

+ 1 - 1
appveyor.yml

@@ -36,4 +36,4 @@ after_build:
 
 test_script:
   - set CGO_ENABLED=1
-  - go run build\ci.go test -vet -coverage -misspell
+  - go run build\ci.go test -vet -coverage

+ 30 - 24
build/ci.go

@@ -24,7 +24,7 @@ Usage: go run ci.go <command> <command flags/arguments>
 Available commands are:
 
    install    [-arch architecture] [ packages... ]                                           -- builds packages and executables
-   test       [ -coverage ] [ -vet ] [ -misspell] [ packages... ]                            -- runs the tests
+   test       [ -coverage ] [ -vet ] [ -misspell ] [ packages... ]                           -- runs the tests
    archive    [-arch architecture] [ -type zip|tar ] [ -signer key-envvar ] [ -upload dest ] -- archives build artefacts
    importkeys                                                                                -- imports signing keys from env
    debsrc     [ -signer key-id ] [ -upload dest ]                                            -- creates a debian source package
@@ -289,29 +289,7 @@ func doTest(cmdline []string) {
 		build.MustRun(goTool("vet", packages...))
 	}
 	if *misspell {
-		// Ensure the spellchecker is available
-		build.MustRun(goTool("get", "github.com/client9/misspell/cmd/misspell"))
-
-		// Windows (AppVeyor) chokes on long argument lists, check packages individualy
-		for _, pkg := range packages {
-			// The spell checker doesn't work on packages, gather all .go files for it
-			out, err := goTool("list", "-f", "{{.Dir}}{{range .GoFiles}}\n{{.}}{{end}}{{range .CgoFiles}}\n{{.}}{{end}}{{range .TestGoFiles}}\n{{.}}{{end}}", pkg).CombinedOutput()
-			if err != nil {
-				log.Fatalf("source file listing failed: %v\n%s", err, string(out))
-			}
-			// Retrieve the folder and assemble the source list
-			lines := strings.Split(string(out), "\n")
-			root := lines[0]
-
-			sources := make([]string, 0, len(lines)-1)
-			for _, line := range lines[1:] {
-				if line = strings.TrimSpace(line); line != "" {
-					sources = append(sources, filepath.Join(root, line))
-				}
-			}
-			// Run the spell checker for this particular package
-			build.MustRunCommand(filepath.Join(GOBIN, "misspell"), append([]string{"-error"}, sources...)...)
-		}
+		spellcheck(packages)
 	}
 	// Run the actual tests.
 	gotest := goTool("test")
@@ -325,6 +303,34 @@ func doTest(cmdline []string) {
 	build.MustRun(gotest)
 }
 
+// spellcheck runs the client9/misspell spellchecker package on all Go, Cgo and
+// test files in the requested packages.
+func spellcheck(packages []string) {
+	// Ensure the spellchecker is available
+	build.MustRun(goTool("get", "github.com/client9/misspell/cmd/misspell"))
+
+	// Windows chokes on long argument lists, check packages individualy
+	for _, pkg := range packages {
+		// The spell checker doesn't work on packages, gather all .go files for it
+		out, err := goTool("list", "-f", "{{.Dir}}{{range .GoFiles}}\n{{.}}{{end}}{{range .CgoFiles}}\n{{.}}{{end}}{{range .TestGoFiles}}\n{{.}}{{end}}", pkg).CombinedOutput()
+		if err != nil {
+			log.Fatalf("source file listing failed: %v\n%s", err, string(out))
+		}
+		// Retrieve the folder and assemble the source list
+		lines := strings.Split(string(out), "\n")
+		root := lines[0]
+
+		sources := make([]string, 0, len(lines)-1)
+		for _, line := range lines[1:] {
+			if line = strings.TrimSpace(line); line != "" {
+				sources = append(sources, filepath.Join(root, line))
+			}
+		}
+		// Run the spell checker for this particular package
+		build.MustRunCommand(filepath.Join(GOBIN, "misspell"), append([]string{"-error"}, sources...)...)
+	}
+}
+
 // Release Packaging
 
 func doArchive(cmdline []string) {