dashboard

package
v0.0.0-...-f8637a9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 4, 2016 License: BSD-3-Clause Imports: 4 Imported by: 0

Documentation

Overview

Package dashboard contains shared configuration and logic used by various pieces of the Go continuous build system.

Index

Constants

This section is empty.

Variables

View Source
var Builders = map[string]BuildConfig{}

Builders are the different build configurations. The keys are like "darwin-amd64" or "linux-386-387". This map should not be modified by other packages.

View Source
var Hosts = map[string]*HostConfig{
	"host-linux-kubestd": &HostConfig{
		Notes:           "Kubernetes container on GKE.",
		KubeImage:       "linux-x86-std:latest",
		buildletURLTmpl: "http://storage.googleapis.com/$BUCKET/buildlet.linux-amd64",
		env:             []string{"GOROOT_BOOTSTRAP=/go1.4"},
	},
	"host-linux-armhf-cross": &HostConfig{
		Notes:           "Kubernetes container on GKE built from env/crosscompile/linux-armhf-jessie",
		KubeImage:       "linux-armhf-jessie:latest",
		buildletURLTmpl: "http://storage.googleapis.com/$BUCKET/buildlet.linux-amd64",
		env:             []string{"GOROOT_BOOTSTRAP=/go1.4"},
	},

	"host-nacl-kube": &HostConfig{
		Notes:           "Kubernetes container on GKE.",
		KubeImage:       "linux-x86-nacl:latest",
		buildletURLTmpl: "http://storage.googleapis.com/$BUCKET/buildlet.linux-amd64",
		env:             []string{"GOROOT_BOOTSTRAP=/go1.4"},
	},
	"host-s390x-cross-kube": &HostConfig{
		Notes:           "Kubernetes container on GKE.",
		KubeImage:       "linux-s390x-stretch:latest",
		buildletURLTmpl: "https://storage.googleapis.com/$BUCKET/buildlet.linux-amd64",
		env:             []string{"GOROOT_BOOTSTRAP=/go1.4"},
	},
	"host-linux-clang": &HostConfig{
		Notes:           "GCE VM with clang.",
		VMImage:         "linux-buildlet-clang",
		buildletURLTmpl: "http://storage.googleapis.com/$BUCKET/buildlet.linux-amd64",
		env:             []string{"GOROOT_BOOTSTRAP=/go1.4"},
	},
	"host-linux-sid": &HostConfig{
		Notes:           "GCE VM with Debian sid.",
		VMImage:         "linux-buildlet-sid",
		buildletURLTmpl: "http://storage.googleapis.com/$BUCKET/buildlet.linux-amd64",
		env:             []string{"GOROOT_BOOTSTRAP=/go1.4"},
	},
	"host-linux-arm": &HostConfig{
		IsReverse:      true,
		env:            []string{"GOROOT_BOOTSTRAP=/usr/local/go"},
		ReverseAliases: []string{"linux-arm", "linux-arm-arm5"},
	},
	"host-openbsd-amd64-58-gce": &HostConfig{
		VMImage:            "openbsd-amd64-58",
		machineType:        "n1-highcpu-4",
		buildletURLTmpl:    "https://storage.googleapis.com/$BUCKET/buildlet.openbsd-amd64",
		goBootstrapURLTmpl: "https://storage.googleapis.com/$BUCKET/go1.4-openbsd-amd64-gce58.tar.gz",
		Notes:              "OpenBSD 5.8; GCE VM is built from script in build/env/openbsd-amd64",
	},
	"host-openbsd-386-58-gce": &HostConfig{
		VMImage:            "openbsd-386-58",
		machineType:        "n1-highcpu-4",
		buildletURLTmpl:    "https://storage.googleapis.com/$BUCKET/buildlet.openbsd-386",
		goBootstrapURLTmpl: "https://storage.googleapis.com/$BUCKET/go1.4-openbsd-386-gce58.tar.gz",
		Notes:              "OpenBSD 5.8; GCE VM is built from script in build/env/openbsd-386",
	},
	"host-freebsd-93-gce": &HostConfig{
		VMImage:            "freebsd-amd64-gce93",
		machineType:        "n1-highcpu-4",
		buildletURLTmpl:    "https://storage.googleapis.com/$BUCKET/buildlet.freebsd-amd64",
		goBootstrapURLTmpl: "https://storage.googleapis.com/$BUCKET/go1.4-freebsd-amd64.tar.gz",
	},
	"host-freebsd-101-gce": &HostConfig{
		VMImage:            "freebsd-amd64-gce101",
		Notes:              "FreeBSD 10.1; GCE VM is built from script in build/env/freebsd-amd64",
		machineType:        "n1-highcpu-4",
		buildletURLTmpl:    "http://storage.googleapis.com/$BUCKET/buildlet.freebsd-amd64",
		goBootstrapURLTmpl: "https://storage.googleapis.com/$BUCKET/go1.4-freebsd-amd64.tar.gz",
		env:                []string{"CC=clang"},
	},
	"host-netbsd-gce": &HostConfig{
		VMImage:            "netbsd-amd64-gce",
		Notes:              "NetBSD tip; GCE VM is built from script in build/env/netbsd-amd64",
		machineType:        "n1-highcpu-2",
		buildletURLTmpl:    "http://storage.googleapis.com/$BUCKET/buildlet.netbsd-amd64",
		goBootstrapURLTmpl: "https://storage.googleapis.com/$BUCKET/gobootstrap-netbsd-amd64.tar.gz",
	},
	"host-plan9-386-gce": &HostConfig{
		VMImage:            "plan9-386-v3",
		Notes:              "Plan 9 from 0intro; GCE VM is built from script in build/env/plan9-386",
		buildletURLTmpl:    "http://storage.googleapis.com/$BUCKET/buildlet.plan9-386",
		goBootstrapURLTmpl: "https://storage.googleapis.com/$BUCKET/gobootstrap-plan9-386.tar.gz",

		machineType: "n1-highcpu-4",
	},
	"host-windows-gce": &HostConfig{
		VMImage:            "windows-buildlet-v2",
		machineType:        "n1-highcpu-4",
		buildletURLTmpl:    "http://storage.googleapis.com/$BUCKET/buildlet.windows-amd64",
		goBootstrapURLTmpl: "https://storage.googleapis.com/$BUCKET/go1.4-windows-amd64.tar.gz",
		RegularDisk:        true,
	},
	"host-darwin-10_8": &HostConfig{
		IsReverse: true,
		Notes:     "MacStadium OS X 10.8 VM under VMWare ESXi",
		env: []string{
			"GOROOT_BOOTSTRAP=/Users/gopher/go1.4",
		},
		ReverseAliases: []string{"darwin-amd64-10_8"},
	},
	"host-darwin-10_10": &HostConfig{
		IsReverse: true,
		Notes:     "MacStadium OS X 10.10 VM under VMWare ESXi",
		env: []string{
			"GOROOT_BOOTSTRAP=/Users/gopher/go1.4",
		},
		ReverseAliases: []string{"darwin-amd64-10_10"},
	},
	"host-darwin-10_11": &HostConfig{
		IsReverse: true,
		Notes:     "MacStadium OS X 10.11 VM under VMWare ESXi",
		env: []string{
			"GOROOT_BOOTSTRAP=/Users/gopher/go1.4",
		},
		ReverseAliases: []string{"darwin-amd64-10_11"},
	},
	"host-linux-s390x": &HostConfig{
		Notes:          "run by IBM",
		IsReverse:      true,
		env:            []string{"GOROOT_BOOTSTRAP=/var/buildlet/go-linux-s390x-bootstrap"},
		ReverseAliases: []string{"linux-s390x-ibm"},
	},
	"host-linux-ppc64le-osu": &HostConfig{
		Notes:          "Debian jessie; run by Go team on osuosl.org",
		IsReverse:      true,
		env:            []string{"GOROOT_BOOTSTRAP=/usr/local/go-bootstrap"},
		ReverseAliases: []string{"linux-ppc64le-buildlet"},
	},
	"host-linux-arm64-linaro": &HostConfig{
		Notes:          "Ubuntu wily; run by Go team, from linaro",
		IsReverse:      true,
		env:            []string{"GOROOT_BOOTSTRAP=/usr/local/go-bootstrap"},
		ReverseAliases: []string{"linux-arm64-buildlet"},
	},
	"host-solaris-amd64": &HostConfig{
		Notes:          "run by Go team on Joyent, on a SmartOS 'infrastructure container'",
		IsReverse:      true,
		env:            []string{"GOROOT_BOOTSTRAP=/root/go-solaris-amd64-bootstrap"},
		ReverseAliases: []string{"solaris-amd64-smartosbuildlet"},
	},
}

Hosts contains the names and configs of all the types of buildlets. They can be VMs, containers, or dedicated machines.

Functions

This section is empty.

Types

type BuildConfig

type BuildConfig struct {
	// Name is the unique name of the builder, in the form of
	// "GOOS-GOARCH" or "GOOS-GOARCH-suffix". For example,
	// "darwin-386", "linux-386-387", "linux-amd64-race". Some
	// suffixes are well-known and carry special meaning, such as
	// "-race".
	Name string

	// HostType is the required key into the Hosts map, describing
	// the type of host this build will run on.
	// For example, "host-linux-kube-std".
	HostType string

	Notes string // notes for humans

	TryOnly     bool // only used for trybots, and not regular builds
	CompileOnly bool // if true, compile tests, but don't run them
	FlakyNet    bool // network tests are flaky (try anyway, but ignore some failures)

	// StopAfterMake causes the build to stop after the make
	// script completes, returning its result as the result of the
	// whole build. It does not run or compile any of the tests,
	// nor does it write a snapshot of the world to cloud
	// storage. This option is only supported for builders whose
	// BuildConfig.SplitMakeRun returns true.
	StopAfterMake bool
	// contains filtered or unexported fields
}

A BuildConfig describes how to run a builder.

func (*BuildConfig) AllScript

func (c *BuildConfig) AllScript() string

AllScript returns the relative path to the operating system's script to do the build and run its standard set of tests. Example values are "src/all.bash", "src/all.bat", "src/all.rc".

func (*BuildConfig) AllScriptArgs

func (c *BuildConfig) AllScriptArgs() []string

AllScriptArgs returns the set of arguments that should be passed to the all.bash-equivalent script. Usually empty.

func (*BuildConfig) BuildSubrepos

func (c *BuildConfig) BuildSubrepos() bool

func (*BuildConfig) Env

func (c *BuildConfig) Env() []string

func (*BuildConfig) FilePathJoin

func (c *BuildConfig) FilePathJoin(x ...string) string

FilePathJoin is mostly like filepath.Join (without the cleaning) except it uses the path separator of c.GOOS instead of the host system's.

func (*BuildConfig) GOARCH

func (c *BuildConfig) GOARCH() string

func (*BuildConfig) GOOS

func (c *BuildConfig) GOOS() string

func (*BuildConfig) GoBootstrapURL

func (c *BuildConfig) GoBootstrapURL(e *buildenv.Environment) string

BuildletBinaryURL returns the public URL of this builder's buildlet.

func (*BuildConfig) GorootFinal

func (c *BuildConfig) GorootFinal() string

GorootFinal returns the default install location for releases for this platform.

func (*BuildConfig) IsGCE

func (c *BuildConfig) IsGCE() bool

func (*BuildConfig) IsKube

func (c *BuildConfig) IsKube() bool

func (*BuildConfig) IsRace

func (c *BuildConfig) IsRace() bool

func (*BuildConfig) IsReverse

func (c *BuildConfig) IsReverse() bool

func (*BuildConfig) MakeScript

func (c *BuildConfig) MakeScript() string

MakeScript returns the relative path to the operating system's script to do the build. Example values are "src/make.bash", "src/make.bat", "src/make.rc".

func (*BuildConfig) MakeScriptArgs

func (c *BuildConfig) MakeScriptArgs() []string

MakeScriptArgs returns the set of arguments that should be passed to the make.bash-equivalent script. Usually empty.

func (*BuildConfig) NumTestHelpers

func (c *BuildConfig) NumTestHelpers(isTry bool) int

func (*BuildConfig) RunScript

func (c *BuildConfig) RunScript() string

RunScript returns the relative path to the operating system's script to run the test suite. Example values are "src/run.bash", "src/run.bat", "src/run.rc".

func (*BuildConfig) RunScriptArgs

func (c *BuildConfig) RunScriptArgs() []string

RunScriptArgs returns the set of arguments that should be passed to the run.bash-equivalent script.

func (BuildConfig) ShortOwner

func (c BuildConfig) ShortOwner() string

ShortOwner returns a short human-readable owner.

func (*BuildConfig) SplitMakeRun

func (c *BuildConfig) SplitMakeRun() bool

SplitMakeRun reports whether the coordinator should first compile (using c.MakeScript), then snapshot, then run the tests (ideally sharded) using c.RunScript. Eventually this function should always return true (and then be deleted) but for now we've only set up the scripts and verified that the main configurations work.

type HostConfig

type HostConfig struct {
	// HostType is the unique name of this host config. It is also
	// the key in the Hosts map.
	HostType string

	// Exactly 1 of these must be set:
	VMImage   string // e.g. "openbsd-amd64-58"
	KubeImage string // e.g. "linux-buildlet-std:latest" (suffix after "gcr.io/<PROJ>/")
	IsReverse bool   // if true, only use the reverse buildlet pool

	RegularDisk bool // if true, use spinning disk instead of SSD

	Owner string // optional email of owner; "bradfitz@golang.org", empty means golang-dev
	Notes string // notes for humans

	// ReverseAliases lists alternate names for this buildlet
	// config, for older clients doing a reverse dial into the
	// coordinator from outside. This prevents us from updating
	// 75+ dedicated machines/VMs atomically, switching them to
	// the new "host-*" names.
	// This is only applicable if IsReverse.
	ReverseAliases []string
	// contains filtered or unexported fields
}

A HostConfig describes the available ways to obtain buildlets of different types. Some host configs can server multiple builders. For example, a host config of "host-linux-kube-std" can serve linux-amd64, linux-amd64-race, linux-386, linux-386-387, etc.

func (*HostConfig) BuildletBinaryURL

func (c *HostConfig) BuildletBinaryURL(e *buildenv.Environment) string

BuildletBinaryURL returns the public URL of this builder's buildlet.

func (*HostConfig) GCENumCPU

func (c *HostConfig) GCENumCPU() int

GCENumCPU reports the number of GCE CPUs this buildlet requires.

func (*HostConfig) IsGCE

func (c *HostConfig) IsGCE() bool

func (*HostConfig) IsKube

func (c *HostConfig) IsKube() bool

func (*HostConfig) MachineType

func (c *HostConfig) MachineType() string

MachineType returns the GCE machine type to use for this builder.

func (*HostConfig) PoolName

func (c *HostConfig) PoolName() string

PoolName returns a short summary of the builder's host type for the http://farmer.golang.org/builders page.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL