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.

                                          Source Files