diff --git a/dashboard/coordinator/main.go b/dashboard/coordinator/main.go index 2c3c7cca0f..107443dd20 100644 --- a/dashboard/coordinator/main.go +++ b/dashboard/coordinator/main.go @@ -54,6 +54,7 @@ var images = map[string]*imageInfo{ "gobuilders/linux-x86-base": {url: "https://storage.googleapis.com/go-builder-data/docker-linux.base.tar.gz"}, "gobuilders/linux-x86-gccgo": {url: "https://storage.googleapis.com/go-builder-data/docker-linux.gccgo.tar.gz"}, "gobuilders/linux-x86-nacl": {url: "https://storage.googleapis.com/go-builder-data/docker-linux.nacl.tar.gz"}, + "gobuilders/linux-x86-sid": {url: "https://storage.googleapis.com/go-builder-data/docker-linux.sid.tar.gz"}, } type buildConfig struct { @@ -84,6 +85,8 @@ func main() { dashURL: "https://build.golang.org/gccgo", tool: "gccgo", }) + addBuilder(buildConfig{name: "linux-386-sid", image: "gobuilders/linux-x86-sid"}) + addBuilder(buildConfig{name: "linux-amd64-sid", image: "gobuilders/linux-x86-sid"}) if (*just != "") != (*rev != "") { log.Fatalf("--just and --rev must be used together") @@ -378,7 +381,7 @@ func startBuilding(conf buildConfig, rev string) (*buildStatus, error) { container := strings.TrimSpace(string(all)) go func() { all, err := exec.Command("docker", "wait", container).CombinedOutput() - log.Printf("docker wait %s: %v, %s", container, err, strings.TrimSpace(string(all))) + log.Printf("docker wait %s/%s: %v, %s", container, rev, err, strings.TrimSpace(string(all))) donec <- builderRev{conf.name, rev} exec.Command("docker", "rm", container).Run() }() diff --git a/dashboard/env/linux-x86-sid/Dockerfile b/dashboard/env/linux-x86-sid/Dockerfile new file mode 100644 index 0000000000..fdbf73d28e --- /dev/null +++ b/dashboard/env/linux-x86-sid/Dockerfile @@ -0,0 +1,14 @@ +# Copyright 2014 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +FROM debian:sid +MAINTAINER golang-dev + +ENV DEBIAN_FRONTEND noninteractive + +ADD /scripts/install-apt-deps.sh /scripts/ +RUN /scripts/install-apt-deps.sh + +ADD /scripts/build-go-builder.sh /scripts/ +RUN GO_REV=073fc578434b BUILDER_REV=8845ca94a310 /scripts/build-go-builder.sh && test -f /usr/local/bin/builder diff --git a/dashboard/env/linux-x86-sid/Makefile b/dashboard/env/linux-x86-sid/Makefile new file mode 100644 index 0000000000..a50b12c856 --- /dev/null +++ b/dashboard/env/linux-x86-sid/Makefile @@ -0,0 +1,12 @@ +# Copyright 2014 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +docker: Dockerfile + docker build -t gobuilders/linux-x86-sid . + +docker-linux.sid.tar.gz: docker + docker save gobuilders/linux-x86-sid | gzip | (cd ../../coordinator/buildongce && go run create.go --write_object=go-builder-data/docker-linux.sid.tar.gz) + +check: docker + docker run gobuilders/linux-x86-sid /usr/local/bin/builder -rev=fa76e8393654 -buildroot=/ -v -report=false linux-amd64-sid diff --git a/dashboard/env/linux-x86-sid/scripts/build-go-builder.sh b/dashboard/env/linux-x86-sid/scripts/build-go-builder.sh new file mode 100755 index 0000000000..1448fc567e --- /dev/null +++ b/dashboard/env/linux-x86-sid/scripts/build-go-builder.sh @@ -0,0 +1,20 @@ +set -ex + +export GOPATH=/gopath +export GOROOT=/goroot +PREFIX=/usr/local +: ${GO_REV:?"need to be set to the golang repo revision used to build the builder."} +: ${BUILDER_REV:?"need to be set to the go.tools repo revision for the builder."} + +mkdir -p $GOROOT +curl -s https://storage.googleapis.com/gobuilder/go-snap.tar.gz | tar x --no-same-owner -zv -C $GOROOT +(cd $GOROOT/src && hg pull -r $GO_REV -u && find && ./make.bash) + +GO_TOOLS=$GOPATH/src/code.google.com/p/go.tools +mkdir -p $GO_TOOLS +curl -s https://storage.googleapis.com/gobuilder/go.tools-snap.tar.gz | tar x --no-same-owner -zv -C $GO_TOOLS + +mkdir -p $PREFIX/bin +(cd $GO_TOOLS && hg pull -r $BUILDER_REV -u && GOBIN=$PREFIX/bin /goroot/bin/go install code.google.com/p/go.tools/dashboard/builder) + +rm -fR $GOROOT/bin $GOROOT/pkg $GOPATH diff --git a/dashboard/env/linux-x86-sid/scripts/install-apt-deps.sh b/dashboard/env/linux-x86-sid/scripts/install-apt-deps.sh new file mode 100755 index 0000000000..839f4ad2fa --- /dev/null +++ b/dashboard/env/linux-x86-sid/scripts/install-apt-deps.sh @@ -0,0 +1,17 @@ +set -ex + +apt-get update +# For running curl to get the hg starter tarballs (faster than hg clone). +apt-get install -y --no-install-recommends curl ca-certificates +# Optionally used by some net/http tests: +apt-get install -y --no-install-recommends strace +# For building Go's bootstrap 'dist' prog +apt-get install -y --no-install-recommends gcc libc6-dev +# For 32-bit builds: +# TODO(bradfitz): move these into a 386 image that derives from this one. +apt-get install -y --no-install-recommends libc6-dev-i386 gcc-multilib +# For interacting with the Go source & subrepos: +apt-get install -y --no-install-recommends mercurial git-core + +apt-get clean +rm -fr /var/lib/apt/lists