зеркало из https://github.com/golang/build.git
env: update nacl builders to be VM-based
Be lazy and use sid as a base, instead of trusty. This replaces my earlier failed attempt: https://golang.org/cl/4960 Fixes golang/go#9879 Change-Id: Ia0a39c99747844b6e34bf7561c01dce49fa3b226 Reviewed-on: https://go-review.googlesource.com/5191 Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
Родитель
f0728e33ea
Коммит
0e84fc7a92
|
@ -77,6 +77,9 @@ func (c *BuildConfig) AllScript() string {
|
|||
if strings.HasPrefix(c.Name, "plan9-") {
|
||||
return "src/all.rc"
|
||||
}
|
||||
if strings.HasPrefix(c.Name, "nacl-") {
|
||||
return "src/nacltest.bash"
|
||||
}
|
||||
return "src/all.bash"
|
||||
}
|
||||
|
||||
|
@ -175,10 +178,6 @@ func init() {
|
|||
tool: "gccgo",
|
||||
})
|
||||
|
||||
// TODO(bradfitz,adg,jbd): convert nacl builders to be VMs too:
|
||||
addBuilder(BuildConfig{Name: "nacl-386"})
|
||||
addBuilder(BuildConfig{Name: "nacl-amd64p32"})
|
||||
|
||||
// VMs:
|
||||
addBuilder(BuildConfig{
|
||||
Name: "freebsd-amd64-gce93",
|
||||
|
@ -276,6 +275,18 @@ func init() {
|
|||
VMImage: "linux-buildlet-sid",
|
||||
env: []string{"GOROOT_BOOTSTRAP=/go1.4"},
|
||||
})
|
||||
addBuilder(BuildConfig{
|
||||
Name: "nacl-386",
|
||||
VMImage: "linux-buildlet-nacl",
|
||||
buildletURL: "http://storage.googleapis.com/go-builder-data/buildlet.linux-amd64",
|
||||
env: []string{"GOROOT_BOOTSTRAP=/go1.4", "GOOS=nacl", "GOARCH=386", "GOHOSTOS=linux", "GOHOSTARCH=amd64"},
|
||||
})
|
||||
addBuilder(BuildConfig{
|
||||
Name: "nacl-amd64p32",
|
||||
VMImage: "linux-buildlet-nacl",
|
||||
buildletURL: "http://storage.googleapis.com/go-builder-data/buildlet.linux-amd64",
|
||||
env: []string{"GOROOT_BOOTSTRAP=/go1.4", "GOOS=nacl", "GOARCH=amd64p32", "GOHOSTOS=linux", "GOHOSTARCH=amd64"},
|
||||
})
|
||||
addBuilder(BuildConfig{
|
||||
Name: "openbsd-amd64-gce56",
|
||||
VMImage: "openbsd-amd64-56",
|
||||
|
@ -362,15 +373,6 @@ func addBuilder(c BuildConfig) {
|
|||
if c.tool == "" {
|
||||
c.tool = "go"
|
||||
}
|
||||
|
||||
if strings.HasPrefix(c.Name, "nacl-") {
|
||||
if c.Image == "" {
|
||||
c.Image = "gobuilders/linux-x86-nacl"
|
||||
}
|
||||
if c.cmd == "" {
|
||||
c.cmd = "/usr/local/bin/build-command.pl"
|
||||
}
|
||||
}
|
||||
if strings.HasPrefix(c.Name, "linux-") && c.Image == "" && c.VMImage == "" {
|
||||
c.Image = "gobuilders/linux-x86-base"
|
||||
}
|
||||
|
|
|
@ -1,27 +1,19 @@
|
|||
# Copyright 2014 The Go Authors. All rights reserved.
|
||||
# Copyright 2015 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.
|
||||
|
||||
# gobuilders/linux-x86-nacl for 32- and 64-bit nacl.
|
||||
#
|
||||
# We need more modern libc than Debian stable as used in base, so we're
|
||||
# using Ubuntu LTS here.
|
||||
#
|
||||
# TODO(bradfitz): make both be Ubuntu? But we also want Debian, Fedora,
|
||||
# etc coverage., so deal with unifying these later, once there's a plan
|
||||
# or a generator for them and the other builders are turned down.
|
||||
# using Debian sid instead.
|
||||
|
||||
FROM ubuntu:trusty
|
||||
FROM gobuilders/linux-x86-sid
|
||||
MAINTAINER golang-dev <golang-dev@googlegroups.com>
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
ADD /scripts/install-apt-deps.sh /scripts/
|
||||
RUN /scripts/install-apt-deps.sh
|
||||
RUN (cd /usr/bin && curl -s -O https://storage.googleapis.com/gobuilder/sel_ldr_x86_32 && chmod +x sel_ldr_x86_32)
|
||||
RUN (cd /usr/bin && curl -s -O https://storage.googleapis.com/gobuilder/sel_ldr_x86_64 && chmod +x sel_ldr_x86_64)
|
||||
|
||||
ADD /scripts/build-go-builder.sh /scripts/
|
||||
RUN GO_REV=go1.4 TOOLS_REV=d79e0375a BUILDER_REV=fa8373a /scripts/build-go-builder.sh && test -f /usr/local/bin/builder
|
||||
|
||||
ADD build-command.pl /usr/local/bin/
|
||||
|
||||
ENV PATH /usr/local/bin:$GOROOT/bin:$PATH
|
||||
ADD go_nacl_386_exec /usr/bin/
|
||||
ADD go_nacl_amd64p32_exec /usr/bin/
|
||||
|
|
|
@ -5,8 +5,12 @@
|
|||
docker: Dockerfile
|
||||
docker build -t gobuilders/linux-x86-nacl .
|
||||
|
||||
upload: docker
|
||||
docker save gobuilders/linux-x86-nacl | gzip | (cd ../../cmd/upload && go run upload.go --public go-builder-data/docker-linux.nacl.tar.gz)
|
||||
# TODO(bradfitz): test targets, using cmd/gomote and the buildlet in the container.
|
||||
|
||||
# TODO(bradfitz): docs on how to build a new image. In a nutshell,
|
||||
#
|
||||
# $ go install golang.org/x/build/cmd/docker2boot
|
||||
# $ sudo docker2boot --image=gobuilders/linux-x86-nacl --out=linux-buildlet-nacl.tar.gz --gb=3
|
||||
# $ gsutil cp -a public-read linux-buildlet-nacl.tar.gz gs://go-builder-data/linux-buildlet-nacl.tar.gz
|
||||
# $ gcloud compute --project symbolic-datum-552 images create linux-buildlet-nacl --source-uri gs://go-builder-data/linux-buildlet-nacl.tar.gz
|
||||
|
||||
check: docker
|
||||
docker run gobuilders/linux-x86-nacl /usr/local/bin/builder -rev=77e96c9208d0 -buildroot=/ -v -cmd=/usr/local/bin/build-command.pl -report=false nacl-amd64p32
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
|
||||
if ($ENV{GOOS} eq "nacl") {
|
||||
delete $ENV{GOROOT_FINAL};
|
||||
exec("./nacltest.bash", @ARGV);
|
||||
die "Failed to run nacltest.bash: $!\n";
|
||||
}
|
||||
|
||||
exec("./all.bash", @ARGV);
|
||||
die "Failed to run all.bash: $!\n";
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/bash
|
||||
|
||||
eval $(go env)
|
||||
|
||||
export NACLENV_GOARCH=$GOARCH
|
||||
export NACLENV_GOOS=$GOOS
|
||||
export NACLENV_GOROOT=/go
|
||||
export NACLENV_NACLPWD=$(pwd | sed "s;$GOROOT;/go;")
|
||||
|
||||
exec sel_ldr_x86_32 -l /dev/null -S -e "$@"
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/bash
|
||||
|
||||
eval $(go env)
|
||||
|
||||
export NACLENV_GOARCH=$GOARCH
|
||||
export NACLENV_GOOS=$GOOS
|
||||
export NACLENV_GOROOT=/go
|
||||
export NACLENV_NACLPWD=$(pwd | sed "s;$GOROOT;/go;")
|
||||
|
||||
exec sel_ldr_x86_64 -l /dev/null -S -e "$@"
|
|
@ -1,36 +0,0 @@
|
|||
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."}
|
||||
: ${TOOLS_REV:?"need to be set to the tools repo revision used to build the builder."}
|
||||
: ${BUILDER_REV:?"need to be set to the build repo revision for the builder."}
|
||||
|
||||
mkdir -p $GOROOT
|
||||
git clone https://go.googlesource.com/go $GOROOT
|
||||
(cd $GOROOT/src && git checkout $GO_REV && find && ./make.bash)
|
||||
|
||||
GO_TOOLS=$GOPATH/src/golang.org/x/tools
|
||||
mkdir -p $GO_TOOLS
|
||||
git clone https://go.googlesource.com/tools $GO_TOOLS
|
||||
(cd $GO_TOOLS && git reset --hard $TOOLS_REV)
|
||||
|
||||
GO_BUILD=$GOPATH/src/golang.org/x/build
|
||||
mkdir -p $GO_BUILD
|
||||
git clone https://go.googlesource.com/build $GO_BUILD
|
||||
|
||||
mkdir -p $PREFIX/bin
|
||||
(cd $GO_BUILD && git reset --hard $BUILDER_REV && GOBIN=$PREFIX/bin /goroot/bin/go install golang.org/x/build/cmd/builder)
|
||||
|
||||
rm -fR $GOROOT/bin $GOROOT/pkg $GOPATH
|
||||
|
||||
(cd /usr/local/bin && curl -s -O https://storage.googleapis.com/gobuilder/sel_ldr_x86_32 && chmod +x sel_ldr_x86_32)
|
||||
(cd /usr/local/bin && curl -s -O https://storage.googleapis.com/gobuilder/sel_ldr_x86_64 && chmod +x sel_ldr_x86_64)
|
||||
|
||||
ln -s $GOROOT/misc/nacl/go_nacl_386_exec /usr/local/bin/
|
||||
ln -s $GOROOT/misc/nacl/go_nacl_amd64p32_exec /usr/local/bin/
|
||||
|
||||
cd $GOROOT
|
||||
git clean -f -d -x
|
||||
git checkout master
|
|
@ -1,14 +0,0 @@
|
|||
set -ex
|
||||
|
||||
apt-get update
|
||||
# curl is needed to fetch the sel_ldr nacl binaries:
|
||||
apt-get install -y --no-install-recommends curl ca-certificates
|
||||
# For building Go's bootstrap 'dist' prog
|
||||
apt-get install -y --no-install-recommends gcc libc6-dev
|
||||
# For interacting with the Go source & subrepos:
|
||||
apt-get install -y --no-install-recommends git-core
|
||||
# For 32-bit nacl:
|
||||
apt-get install -y --no-install-recommends libc6-i386 libc6-dev-i386 lib32stdc++6 gcc-multilib
|
||||
|
||||
apt-get clean
|
||||
rm -fr /var/lib/apt/lists
|
Загрузка…
Ссылка в новой задаче