aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Gerrand <adg@golang.org>2011-09-05 14:48:27 +1000
committerAndrew Gerrand <adg@golang.org>2011-09-05 14:48:27 +1000
commit4e7250db129b8f6a54b3e1a69ca1b0711bd9219f (patch)
treea2d5abd1371950dd492f6cf5308453d7f0a968d4
parent1f523e2579e8e10b8d9de7f989b711f6d2ee0eb2 (diff)
downloadgo-4e7250db129b8f6a54b3e1a69ca1b0711bd9219f.tar.gz
go-4e7250db129b8f6a54b3e1a69ca1b0711bd9219f.zip
gobuilder: ignore _test.go files when looking for docs, more logging
R=n13m3y3r CC=golang-dev https://golang.org/cl/4918050
-rw-r--r--misc/dashboard/builder/package.go36
1 files changed, 31 insertions, 5 deletions
diff --git a/misc/dashboard/builder/package.go b/misc/dashboard/builder/package.go
index b2a83fa13d..ebf4dd3c9a 100644
--- a/misc/dashboard/builder/package.go
+++ b/misc/dashboard/builder/package.go
@@ -5,6 +5,7 @@
package main
import (
+ "fmt"
"go/doc"
"go/parser"
"go/token"
@@ -17,6 +18,10 @@ import (
const MaxCommentLength = 500 // App Engine won't store more in a StringProperty.
func (b *Builder) buildPackages(workpath string, hash string) os.Error {
+ logdir := filepath.Join(*buildroot, "log")
+ if err := os.Mkdir(logdir, 0755); err != nil {
+ return err
+ }
pkgs, err := packages()
if err != nil {
return err
@@ -44,9 +49,13 @@ func (b *Builder) buildPackages(workpath string, hash string) os.Error {
}
// get doc comment from package source
- info, err := packageComment(p, filepath.Join(goroot, "src", "pkg", p))
- if err != nil {
- log.Printf("packageComment %v: %v", p, err)
+ var info string
+ pkgPath := filepath.Join(goroot, "src", "pkg", p)
+ if _, err := os.Stat(pkgPath); err == nil {
+ info, err = packageComment(p, pkgPath)
+ if err != nil {
+ log.Printf("packageComment %v: %v", p, err)
+ }
}
// update dashboard with build state + info
@@ -54,6 +63,19 @@ func (b *Builder) buildPackages(workpath string, hash string) os.Error {
if err != nil {
log.Printf("updatePackage %v: %v", p, err)
}
+
+ if code == 0 {
+ log.Println("Build succeeded:", p)
+ } else {
+ log.Println("Build failed:", p)
+ fn := filepath.Join(logdir, strings.Replace(p, "/", "_", -1))
+ if f, err := os.Create(fn); err != nil {
+ log.Printf("creating %s: %v", fn, err)
+ } else {
+ fmt.Fprint(f, buildLog)
+ f.Close()
+ }
+ }
}
return nil
}
@@ -61,6 +83,7 @@ func (b *Builder) buildPackages(workpath string, hash string) os.Error {
func isGoFile(fi *os.FileInfo) bool {
return fi.IsRegular() && // exclude directories
!strings.HasPrefix(fi.Name, ".") && // ignore .files
+ !strings.HasSuffix(fi.Name, "_test.go") && // ignore tests
filepath.Ext(fi.Name) == ".go"
}
@@ -74,10 +97,13 @@ func packageComment(pkg, pkgpath string) (info string, err os.Error) {
if name == "main" {
continue
}
+ pdoc := doc.NewPackageDoc(pkgs[name], pkg)
+ if pdoc.Doc == "" {
+ continue
+ }
if info != "" {
- return "", os.NewError("multiple non-main package docs")
+ return "", os.NewError("multiple packages with docs")
}
- pdoc := doc.NewPackageDoc(pkgs[name], pkg)
info = pdoc.Doc
}
// grab only first paragraph