Documentation ¶
Overview ¶
Package buildgo provides tools for pushing and building the Go distribution on buildlets.
Index ¶
- Variables
- func VersionTgz(rev string) io.Reader
- type BuilderRev
- func (br BuilderRev) IsSubrepo() bool
- func (br BuilderRev) RepoOrGo() string
- func (br *BuilderRev) SnapshotExists(ctx context.Context, buildEnv *buildenv.Environment) bool
- func (br *BuilderRev) SnapshotObjectName() string
- func (br *BuilderRev) SnapshotURL(buildEnv *buildenv.Environment) string
- func (br BuilderRev) SubRevOrGoRev() string
- type Client
- type GoBuilder
Constants ¶
This section is empty.
Variables ¶
var TestHookSnapshotExists func(*BuilderRev) bool
Functions ¶
func VersionTgz ¶
VersionTgz returns an io.Reader of a *.tar.gz file containing only a VERSION file containing the contents of the provided rev string.
Types ¶
type BuilderRev ¶
type BuilderRev struct { Name string // e.g. "linux-amd64-race" Rev string // lowercase hex core repo git hash // optional sub-repository details (both must be present) SubName string // e.g. "net" SubRev string // lowercase hex sub-repo git hash }
BuilderRev is a build configuration type and a revision.
func (BuilderRev) IsSubrepo ¶
func (br BuilderRev) IsSubrepo() bool
func (BuilderRev) RepoOrGo ¶
func (br BuilderRev) RepoOrGo() string
func (*BuilderRev) SnapshotExists ¶
func (br *BuilderRev) SnapshotExists(ctx context.Context, buildEnv *buildenv.Environment) bool
SnapshotExists reports whether the snapshot exists in storage. It returns potentially false negatives on network errors. Callers must not depend on this as more than an optimization.
func (*BuilderRev) SnapshotObjectName ¶
func (br *BuilderRev) SnapshotObjectName() string
SnapshotObjectName is the cloud storage object name of the built Go tree for this builder and Go rev (not the sub-repo). The entries inside this tarball do not begin with "go/".
func (*BuilderRev) SnapshotURL ¶
func (br *BuilderRev) SnapshotURL(buildEnv *buildenv.Environment) string
SnapshotURL is the absolute URL of the snapshot object (see above).
func (BuilderRev) SubRevOrGoRev ¶
func (br BuilderRev) SubRevOrGoRev() string
type Client ¶
type Client struct { Env *buildenv.Environment // generally Production or Staging Creds *google.Credentials Client *http.Client // OAuth2 client Verbose bool // enable extra debug logging // contains filtered or unexported fields }
Client is an authenticated client to the Go build system.
func NewClient ¶
NewClient returns a new client for using the Go build system in the provided environment. The authentication information is discovered using env.Credentials.
func (*Client) AwaitOp ¶
AwaitOp waits for op to finish. It returns nil if the operating finished successfully.
func (*Client) MakeBasepinDisks ¶
MakeBasepinDisks looks at the list of all the project's VM images and creates (if needed) a disk for each one, named with the prefix "basepin-". The purpose of these "basepin" disks is to speed up GCE VM creations. When GCE creates a new disk for a new VM, it takes a fast path when creating the disk if there's another disk in the same zone for that image, and makes the new disk a thin Copy-on-Write shadow over the basepin disk. GCE also does this if there's been a VM created within the past N minutes of that type, but we want VMs to always create quickly.
type GoBuilder ¶
type GoBuilder struct { spanlog.Logger BuilderRev Conf *dashboard.BuildConfig // Goroot is a Unix-style path relative to the work directory of the // builder (e.g. "go"). Goroot string // GorootBootstrap is an optional absolute Unix-style path to the // bootstrap toolchain, overriding the default. GorootBootstrap string // GoDevDLBootstrap is whether the bootstrap comes from go.dev/dl/, // meaning its content is inside a directory named "go" as opposed // to the root of the archive. GorootBootstrap must be empty if so. GoDevDLBootstrap bool // Force controls whether to use the -force flag when building Go. // See go.dev/issue/56679. Force bool }
A GoBuilder knows how to build a revision of Go with the given configuration.