mirror of
https://github.com/golang/go
synced 2024-11-18 15:04:44 -07:00
dashboard: create notion of a builder version
Don't accept results from old builders once we cut over to the git dashboard. Change-Id: I1087b9fa174542ecfc7251c13f4319f51eca17b6 Reviewed-on: https://go-review.googlesource.com/1358 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
6f3c548bba
commit
6735829fe0
@ -26,8 +26,11 @@ import (
|
||||
"key"
|
||||
)
|
||||
|
||||
const commitsPerPage = 30
|
||||
const watcherVersion = 3 // must match dashboard/watcher/watcher.go's watcherVersion
|
||||
const (
|
||||
commitsPerPage = 30
|
||||
watcherVersion = 3 // must match dashboard/watcher/watcher.go
|
||||
builderVersion = 1 // must match dashboard/builder/http.go
|
||||
)
|
||||
|
||||
// commitHandler retrieves commit data or records a new commit.
|
||||
//
|
||||
@ -85,10 +88,9 @@ func commitHandler(r *http.Request) (interface{}, error) {
|
||||
return nil, errors.New("can only POST commits with master key")
|
||||
}
|
||||
|
||||
// For now, the commit watcher doesn't support gccgo,
|
||||
// so only do this check for Go commits.
|
||||
// TODO(adg,cmang): remove this check when gccgo is supported.
|
||||
if dashboardForRequest(r) == goDash {
|
||||
// For now, the commit watcher doesn't support gccgo.
|
||||
// TODO(adg,cmang): remove this exception when gccgo is supported.
|
||||
if dashboardForRequest(r) != gccgoDash {
|
||||
v, _ := strconv.Atoi(r.FormValue("version"))
|
||||
if v != watcherVersion {
|
||||
return nil, fmt.Errorf("rejecting POST from commit watcher; need version %v", watcherVersion)
|
||||
@ -524,6 +526,15 @@ func resultHandler(r *http.Request) (interface{}, error) {
|
||||
return nil, errBadMethod(r.Method)
|
||||
}
|
||||
|
||||
// For now, the gccgo builders are using the old stuff.
|
||||
// TODO(adg,cmang): remove this exception when gccgo is updated.
|
||||
if dashboardForRequest(r) != gccgoDash {
|
||||
v, _ := strconv.Atoi(r.FormValue("version"))
|
||||
if v != builderVersion {
|
||||
return nil, fmt.Errorf("rejecting POST from builder; need version %v", builderVersion)
|
||||
}
|
||||
}
|
||||
|
||||
c := contextForRequest(r)
|
||||
res := new(Result)
|
||||
defer r.Body.Close()
|
||||
|
@ -16,6 +16,8 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
const builderVersion = 1 // keep in sync with dashboard/app/build/handler.go
|
||||
|
||||
type obj map[string]interface{}
|
||||
|
||||
// dash runs the given method and command on the dashboard.
|
||||
@ -24,15 +26,19 @@ type obj map[string]interface{}
|
||||
// If resp is non-nil the server's response is decoded into the value pointed
|
||||
// to by resp (resp must be a pointer).
|
||||
func dash(meth, cmd string, args url.Values, req, resp interface{}) error {
|
||||
argsCopy := url.Values{"version": {fmt.Sprint(builderVersion)}}
|
||||
for k, v := range args {
|
||||
if k == "version" {
|
||||
panic(`dash: reserved args key: "version"`)
|
||||
}
|
||||
argsCopy[k] = v
|
||||
}
|
||||
var r *http.Response
|
||||
var err error
|
||||
if *verbose {
|
||||
log.Println("dash <-", meth, cmd, args, req)
|
||||
}
|
||||
cmd = *dashboard + "/" + cmd
|
||||
if len(args) > 0 {
|
||||
cmd += "?" + args.Encode()
|
||||
log.Println("dash <-", meth, cmd, argsCopy, req)
|
||||
}
|
||||
cmd = *dashboard + "/" + cmd + "?" + argsCopy.Encode()
|
||||
switch meth {
|
||||
case "GET":
|
||||
if req != nil {
|
||||
|
@ -53,7 +53,7 @@ var (
|
||||
buildRevision = flag.String("rev", "", "Build specified revision and exit")
|
||||
buildCmd = flag.String("cmd", filepath.Join(".", allCmd), "Build command (specify relative to go/src/)")
|
||||
buildTool = flag.String("tool", "go", "Tool to build.")
|
||||
gcPath = flag.String("gcpath", "code.google.com/p/go", "Path to download gc from")
|
||||
gcPath = flag.String("gcpath", "go.googlesource.com/go", "Path to download gc from")
|
||||
gccPath = flag.String("gccpath", "https://github.com/mirrors/gcc.git", "Path to download gcc from")
|
||||
gccOpts = flag.String("gccopts", "", "Command-line options to pass to `make` when building gccgo")
|
||||
benchPath = flag.String("benchpath", "golang.org/x/benchmarks/bench", "Path to download benchmarks from")
|
||||
|
Loading…
Reference in New Issue
Block a user