From 51805171bdfbb2a8d71b338afed8317c470badc4 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Fri, 26 Sep 2014 15:02:51 -0700 Subject: [PATCH] dashboard: add Debian sid builder Update golang/go#8382 LGTM=rsc R=adg, rsc CC=golang-codereviews https://golang.org/cl/150090044 --- dashboard/coordinator/main.go | 5 ++++- dashboard/env/linux-x86-sid/Dockerfile | 14 +++++++++++++ dashboard/env/linux-x86-sid/Makefile | 12 +++++++++++ .../linux-x86-sid/scripts/build-go-builder.sh | 20 +++++++++++++++++++ .../linux-x86-sid/scripts/install-apt-deps.sh | 17 ++++++++++++++++ 5 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 dashboard/env/linux-x86-sid/Dockerfile create mode 100644 dashboard/env/linux-x86-sid/Makefile create mode 100755 dashboard/env/linux-x86-sid/scripts/build-go-builder.sh create mode 100755 dashboard/env/linux-x86-sid/scripts/install-apt-deps.sh diff --git a/dashboard/coordinator/main.go b/dashboard/coordinator/main.go index 2c3c7cca..107443dd 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 00000000..fdbf73d2 --- /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 00000000..a50b12c8 --- /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 00000000..1448fc56 --- /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 00000000..839f4ad2 --- /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