2015-01-15 23:46:22 +03:00
|
|
|
// 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.
|
|
|
|
|
|
|
|
// Package dashboard contains shared configuration and logic used by various
|
|
|
|
// pieces of the Go continuous build system.
|
|
|
|
package dashboard
|
|
|
|
|
2015-06-05 04:25:50 +03:00
|
|
|
import (
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
"fmt"
|
cmd/coordinator, cmd/buildlet, cmd/gomote: add SSH support
This adds an SSH server to farmer.golang.org on port 2222 that proxies
SSH connections to users' gomote-created buildlet instances.
For example:
$ gomote create openbsd-amd64-60
user-bradfitz-openbsd-amd64-60-1
$ gomote ssh user-bradfitz-openbsd-amd64-60-1
Warning: Permanently added '[localhost]:33351' (ECDSA) to the list of known hosts.
OpenBSD 6.0 (GENERIC.MP) golang/go#2319: Tue Jul 26 13:00:43 MDT 2016
Welcome to OpenBSD: The proactively secure Unix-like operating system.
Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code. With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.
$
As before, if the coordinator process is restarted (or crashes, is
evicted, etc), all gomote instances die.
Not yet supported:
* scp (help wanted)
* not all host types are configured. most are. some will need slight
config tweaks to the Docker image (e.g. adding openssh-server)
Supports currently:
* linux-amd64 (host type shared by 386, nacl)
* linux-arm
* linux-arm64
* darwin
* freebsd
* openbsd
* plan9-386
* windows
Implementation details:
* the ssh server process listens on port 2222 in the coordinator
(farmer.golang.org), which is behind a GKE TCP load balancer.
* the ssh server library is github.com/gliderlabs/ssh
* authentication is done via Github users' public keys. It's assumed
that gomote user == github user. But there's a mapping in the code
for known exceptions.
* we can't give out access to this too widely. too many things are
accessible from within the host environment if you look in the right
places. Details omitted. But the Go team and other trusted gomote
users can use this.
* the buildlet binary has a new /connect-ssh handler that acts like a
CONNECT request but instead of taking an explicit host:port, just
says "give me your machine's SSH connection". The buildlet can also
start sshd if needed for the environment. The /connect-ssh handler
also installs the coordinator's public key.
* a new buildlet client library method "ConnectSSH" hits the /connect-ssh
handler and returns a net.Conn.
* the coordinator's ssh.Handler is just running the OpenSSH ssh client.
* because the OpenSSH ssh child process can't connect to a net.Conn,
an emphemeral localhost port is created on the coordinator to proxy
between the ssh client and the net.Conn returned by ConnectSSH.
* The /connect-ssh handler requires http.Hijacker, which requires
fully compliant net.Conn implementations as of Go 1.8. So I needed
to flesh out revdial too, testing it with the
golang.org/x/net/nettest package.
* plan9 doesn't have an ssh server, so we use 0intro's new conterm
program (drawterm without GUI support) to connect to plan9 from the
coordinator ssh proxy instead of using the OpenSSH ssh client
binary.
* windows doesn't have an ssh server, so we enable the telnet service
and the coordinator ssh proxy uses telnet instead on the backend
on the private network. (There is a Windows ssh server but only in
new versions.)
Happy debugging over ssh!
Fixes golang/go#19956
Change-Id: I80a62064c5f85af1f195f980c862ba29af4015f0
Reviewed-on: https://go-review.googlesource.com/50750
Reviewed-by: Herbie Ong <herbie@google.com>
Reviewed-by: Jessie Frazelle <me@jessfraz.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-07-22 22:15:56 +03:00
|
|
|
"os"
|
2017-04-12 03:35:37 +03:00
|
|
|
"sort"
|
2015-06-05 04:25:50 +03:00
|
|
|
"strconv"
|
|
|
|
"strings"
|
2019-02-14 05:18:06 +03:00
|
|
|
"time"
|
2016-02-15 02:59:59 +03:00
|
|
|
|
|
|
|
"golang.org/x/build/buildenv"
|
2021-11-16 20:42:29 +03:00
|
|
|
"golang.org/x/build/internal/gophers"
|
2019-03-07 20:44:41 +03:00
|
|
|
"golang.org/x/build/maintner/maintnerd/maintapi/version"
|
dashboard, cmd/coordinator, maintner/maintnerd: add support for BuildConfig.MinimumGoVersion field
The new BuildConfig.MinimumGoVersion field specifies the minimum
Go version the builder is allowed to use. It's useful when some
of the builders are too new, and do not support all of the supported
Go releases (e.g., openbsd-amd64-64 and freebsd-amd64-12_0 currently
require Go 1.11 and don't work on Go 1.10).
It only needs to be set when a builder doesn't support all supported
Go releases, since we don't typically test unsupported Go releases.
To allow cmd/coordinator to use this field and filter out work it
receives from maintner/maintnerd's GoFindTryWork RPC call,
we add a GoVersion slice to apipb.GerritTryWorkItem,
and populate it in maintapi.apiService.GoFindTryWork method.
For trybots on the Go repo, the GoVersion field is determined from
the branch name. For "release-branch.goX.Y" branches, it parses out
the major-minor Go version from the branch name. For master and
other branches, it assumes the latest Go release.
For trybots on subrepos, we already have the Go version information
available, so use it directly.
Afterwards, all that's left is to modify newTrySet in cmd/coordinator
to make use of BuildConfig.MinimumGoVersion and work.GoVersion to skip
builders that are too new for the Go version that needs to be tested.
Fixes golang/go#29265
Change-Id: I50b01830647e33e37e9eb8b89e0f2518812fa44f
Reviewed-on: https://go-review.googlesource.com/c/155463
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-01-12 00:44:01 +03:00
|
|
|
"golang.org/x/build/types"
|
2015-06-05 04:25:50 +03:00
|
|
|
)
|
2015-01-15 23:46:22 +03:00
|
|
|
|
2019-10-16 09:02:29 +03:00
|
|
|
// slowBotAliases maps short names from TRY= comments to which builder to run.
|
|
|
|
//
|
|
|
|
// TODO: we'll likely expand this, or move it, or change the matching
|
|
|
|
// syntax entirely. This is a first draft.
|
|
|
|
var slowBotAliases = map[string]string{
|
|
|
|
// Known missing builders:
|
2021-06-29 18:40:03 +03:00
|
|
|
"ios-amd64": "", // There is no builder for the iOS Simulator. See issues 42100 and 42177.
|
2019-10-16 09:02:29 +03:00
|
|
|
|
2022-12-01 01:50:25 +03:00
|
|
|
"386": "linux-386",
|
|
|
|
"aix": "aix-ppc64",
|
|
|
|
"amd64": "linux-amd64",
|
|
|
|
"android": "android-amd64-emu",
|
|
|
|
"android-386": "android-386-emu",
|
|
|
|
"android-amd64": "android-amd64-emu",
|
|
|
|
"android-arm": "android-arm-corellium",
|
|
|
|
"android-arm64": "android-arm64-corellium",
|
|
|
|
"arm": "linux-arm-aws",
|
|
|
|
"arm64": "linux-arm64",
|
2023-04-05 02:10:12 +03:00
|
|
|
"boringcrypto": "linux-amd64-boringcrypto",
|
2023-01-25 23:48:37 +03:00
|
|
|
"darwin": "darwin-amd64-13",
|
|
|
|
"darwin-amd64": "darwin-amd64-13",
|
2022-12-01 01:50:25 +03:00
|
|
|
"darwin-arm64": "darwin-arm64-12",
|
|
|
|
"ios-arm64": "ios-arm64-corellium",
|
|
|
|
"dragonfly": "dragonfly-amd64-622",
|
|
|
|
"dragonfly-amd64": "dragonfly-amd64-622",
|
|
|
|
"freebsd": "freebsd-amd64-13_0",
|
|
|
|
"freebsd-386": "freebsd-386-13_0",
|
|
|
|
"freebsd-amd64": "freebsd-amd64-13_0",
|
|
|
|
"freebsd-arm": "freebsd-arm-paulzhol",
|
|
|
|
"freebsd-arm64": "freebsd-arm64-dmgk",
|
|
|
|
"freebsd-riscv64": "freebsd-riscv64-unmatched",
|
|
|
|
"illumos": "illumos-amd64",
|
|
|
|
"ios": "ios-arm64-corellium",
|
2023-01-30 20:42:23 +03:00
|
|
|
"js": "js-wasm-node18",
|
2024-02-14 22:05:34 +03:00
|
|
|
"js-wasm": "js-wasm-node18",
|
2023-05-26 20:44:23 +03:00
|
|
|
"wasip1": "wasip1-wasm-wasmtime",
|
|
|
|
"wasip1-wasm": "wasip1-wasm-wasmtime",
|
2022-12-01 01:50:25 +03:00
|
|
|
"linux": "linux-amd64",
|
|
|
|
"linux-arm": "linux-arm-aws",
|
|
|
|
"linux-loong64": "linux-loong64-3a5000",
|
|
|
|
"linux-mips": "linux-mips-rtrk",
|
|
|
|
"linux-mips64": "linux-mips64-rtrk",
|
|
|
|
"linux-mips64le": "linux-mips64le-rtrk",
|
|
|
|
"linux-mipsle": "linux-mipsle-rtrk",
|
|
|
|
"linux-ppc64": "linux-ppc64-sid-buildlet",
|
2023-04-12 16:46:00 +03:00
|
|
|
"linux-ppc64-power10": "linux-ppc64-sid-power10",
|
2022-12-01 01:50:25 +03:00
|
|
|
"linux-ppc64le": "linux-ppc64le-buildlet",
|
|
|
|
"linux-ppc64le-power9": "linux-ppc64le-power9osu",
|
|
|
|
"linux-ppc64le-power10": "linux-ppc64le-power10osu",
|
|
|
|
"linux-riscv64": "linux-riscv64-unmatched",
|
|
|
|
"linux-s390x": "linux-s390x-ibm",
|
|
|
|
"longtest": "linux-amd64-longtest",
|
|
|
|
"loong64": "linux-loong64-3a5000",
|
|
|
|
"mips": "linux-mips-rtrk",
|
|
|
|
"mips64": "linux-mips64-rtrk",
|
|
|
|
"mips64le": "linux-mips64le-rtrk",
|
|
|
|
"mipsle": "linux-mipsle-rtrk",
|
|
|
|
"netbsd": "netbsd-amd64-9_3",
|
|
|
|
"netbsd-386": "netbsd-386-9_3",
|
|
|
|
"netbsd-amd64": "netbsd-amd64-9_3",
|
|
|
|
"netbsd-arm": "netbsd-arm-bsiegert",
|
|
|
|
"netbsd-arm64": "netbsd-arm64-bsiegert",
|
|
|
|
"nocgo": "linux-amd64-nocgo",
|
2023-01-03 18:42:02 +03:00
|
|
|
"openbsd": "openbsd-amd64-72",
|
|
|
|
"openbsd-386": "openbsd-386-72",
|
|
|
|
"openbsd-amd64": "openbsd-amd64-72",
|
2022-12-01 01:50:25 +03:00
|
|
|
"openbsd-arm": "openbsd-arm-jsing",
|
|
|
|
"openbsd-arm64": "openbsd-arm64-jsing",
|
|
|
|
"openbsd-mips64": "openbsd-mips64-jsing",
|
2023-03-06 06:57:16 +03:00
|
|
|
"openbsd-ppc64": "openbsd-ppc64-n2vi",
|
2023-08-03 09:07:29 +03:00
|
|
|
"openbsd-riscv64": "openbsd-riscv64-jsing",
|
2022-12-01 01:50:25 +03:00
|
|
|
"plan9": "plan9-arm",
|
|
|
|
"plan9-386": "plan9-386-0intro",
|
|
|
|
"plan9-amd64": "plan9-amd64-0intro",
|
|
|
|
"ppc64": "linux-ppc64-sid-buildlet",
|
2023-04-12 16:46:00 +03:00
|
|
|
"ppc64p10": "linux-ppc64-sid-power10",
|
2022-12-01 01:50:25 +03:00
|
|
|
"ppc64le": "linux-ppc64le-buildlet",
|
|
|
|
"ppc64lep9": "linux-ppc64le-power9osu",
|
|
|
|
"ppc64lep10": "linux-ppc64le-power10osu",
|
|
|
|
"riscv64": "linux-riscv64-unmatched",
|
|
|
|
"s390x": "linux-s390x-ibm",
|
|
|
|
"solaris": "solaris-amd64-oraclerel",
|
|
|
|
"solaris-amd64": "solaris-amd64-oraclerel",
|
2023-01-30 20:42:23 +03:00
|
|
|
"wasm": "js-wasm-node18",
|
2023-05-10 06:27:24 +03:00
|
|
|
"wasmedge": "wasip1-wasm-wasmedge",
|
2023-05-09 08:14:53 +03:00
|
|
|
"wasmer": "wasip1-wasm-wasmer",
|
2023-03-24 07:20:10 +03:00
|
|
|
"wasmtime": "wasip1-wasm-wasmtime",
|
2023-03-24 04:40:06 +03:00
|
|
|
"wazero": "wasip1-wasm-wazero",
|
2022-12-01 01:50:25 +03:00
|
|
|
"windows": "windows-amd64-2016",
|
2023-02-23 17:09:59 +03:00
|
|
|
"windows-386": "windows-386-2016",
|
2022-12-01 01:50:25 +03:00
|
|
|
"windows-amd64": "windows-amd64-2016",
|
|
|
|
"windows-arm": "windows-arm-zx2c4",
|
2023-01-04 23:46:55 +03:00
|
|
|
"windows-arm64": "windows-arm64-11",
|
2019-10-16 09:02:29 +03:00
|
|
|
}
|
|
|
|
|
2015-01-15 23:46:22 +03:00
|
|
|
// 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.
|
2017-04-12 03:35:37 +03:00
|
|
|
// Initialization happens below, via calls to addBuilder.
|
2018-10-26 20:52:25 +03:00
|
|
|
var Builders = map[string]*BuildConfig{}
|
2015-01-15 23:46:22 +03:00
|
|
|
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
// GoBootstrap is the bootstrap Go version.
|
2023-08-19 03:28:45 +03:00
|
|
|
//
|
|
|
|
// For bootstrap versions prior to Go 1.21.0,
|
|
|
|
// bootstrap Go builds with this name must be in the buildlet bucket,
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
// usually uploaded by 'genbootstrap -upload all'.
|
2023-07-19 22:36:36 +03:00
|
|
|
const GoBootstrap = "go1.20.6"
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
// Hosts contains the names and configs of all the types of
|
|
|
|
// buildlets. They can be VMs, containers, or dedicated machines.
|
2022-07-26 19:05:33 +03:00
|
|
|
//
|
|
|
|
// Please keep table sorted by map key.
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
var Hosts = map[string]*HostConfig{
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-aix-ppc64-osuosl": {
|
|
|
|
Notes: "AIX 7.2 VM on OSU; run by Tony Reix",
|
|
|
|
Owners: []*gophers.Person{gh("trex58")},
|
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
|
|
|
},
|
|
|
|
"host-android-arm64-corellium-android": {
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
Notes: "Virtual Android devices hosted by Zenly on Corellium; see issues 31722 and 40523",
|
|
|
|
Owners: []*gophers.Person{gh("steeve"), gh("changkun")}, // See https://groups.google.com/g/golang-dev/c/oiuIE7qrWp0.
|
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 3,
|
|
|
|
GoBootstrap: "none", // image has Go 1.15.3 (go.dev/issue/54246); cannot access storage.googleapis.com
|
2022-07-26 19:05:33 +03:00
|
|
|
env: []string{
|
|
|
|
"GOROOT_BOOTSTRAP=/data/data/com.termux/files/home/go-android-arm64-bootstrap",
|
|
|
|
// Only run one job at a time to avoid the OOM killer.
|
|
|
|
// Issue 50084.
|
|
|
|
"GOMAXPROCS=1",
|
|
|
|
},
|
|
|
|
},
|
2022-09-22 20:01:05 +03:00
|
|
|
"host-darwin-amd64-10_15-aws": {
|
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 2,
|
|
|
|
Notes: "AWS macOS Catalina (10.15) VM under QEMU",
|
|
|
|
SSHUsername: "gopher",
|
|
|
|
HermeticReverse: true, // we destroy the VM when done & recreate
|
2022-10-04 23:42:12 +03:00
|
|
|
GoogleReverse: true,
|
2022-09-22 20:01:05 +03:00
|
|
|
},
|
|
|
|
"host-darwin-amd64-11-aws": {
|
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 2,
|
|
|
|
Notes: "AWS macOS Big Sur (11) VM under QEMU",
|
|
|
|
SSHUsername: "gopher",
|
|
|
|
HermeticReverse: true, // we destroy the VM when done & recreate
|
2022-10-04 23:42:12 +03:00
|
|
|
GoogleReverse: true,
|
2022-09-22 20:01:05 +03:00
|
|
|
},
|
2022-09-13 23:03:19 +03:00
|
|
|
"host-darwin-amd64-12-aws": {
|
|
|
|
IsReverse: true,
|
2022-09-21 18:15:53 +03:00
|
|
|
ExpectNum: 6,
|
2022-09-22 20:01:05 +03:00
|
|
|
Notes: "AWS macOS Monterey (12) VM under QEMU",
|
2022-09-13 23:03:19 +03:00
|
|
|
SSHUsername: "gopher",
|
2022-09-22 20:01:05 +03:00
|
|
|
HermeticReverse: true, // we destroy the VM when done & recreate
|
2022-10-04 23:42:12 +03:00
|
|
|
GoogleReverse: true,
|
2022-09-13 23:03:19 +03:00
|
|
|
},
|
2022-11-07 21:19:29 +03:00
|
|
|
"host-darwin-amd64-13-aws": {
|
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 2,
|
|
|
|
Notes: "AWS macOS Ventura (13) VM under QEMU",
|
|
|
|
SSHUsername: "gopher",
|
|
|
|
HermeticReverse: true, // we destroy the VM when done & recreate
|
|
|
|
GoogleReverse: true,
|
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-darwin-arm64-11": {
|
2022-10-04 23:42:12 +03:00
|
|
|
IsReverse: true,
|
|
|
|
Notes: "macOS Big Sur (11) ARM64 (M1) on Mac minis in a Google office",
|
|
|
|
ExpectNum: 3,
|
|
|
|
SSHUsername: "gopher",
|
|
|
|
GoogleReverse: true,
|
2022-07-26 19:05:33 +03:00
|
|
|
},
|
|
|
|
"host-darwin-arm64-12": {
|
2022-10-04 23:42:12 +03:00
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 3,
|
2022-11-22 23:52:05 +03:00
|
|
|
Notes: "macOS Monterey (12) ARM64 (M1) on Mac minis in a Google office",
|
2022-10-04 23:42:12 +03:00
|
|
|
SSHUsername: "gopher",
|
|
|
|
GoogleReverse: true,
|
2022-07-26 19:05:33 +03:00
|
|
|
},
|
2022-07-22 19:20:28 +03:00
|
|
|
"host-dragonfly-amd64-622": {
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
Notes: "DragonFly BSD 6.2.2 on GCE, built from build/env/dragonfly-amd64",
|
|
|
|
VMImage: "dragonfly-amd64-622",
|
|
|
|
SSHUsername: "root",
|
2022-07-26 19:05:33 +03:00
|
|
|
},
|
|
|
|
"host-freebsd-amd64-12_3": {
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
VMImage: "freebsd-amd64-123-stable-20211230",
|
|
|
|
Notes: "FreeBSD 12.3; GCE VM, built from build/env/freebsd-amd64",
|
|
|
|
SSHUsername: "gopher",
|
2022-07-26 19:05:33 +03:00
|
|
|
},
|
|
|
|
"host-freebsd-amd64-13_0": {
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
VMImage: "freebsd-amd64-130-stable-20211230",
|
|
|
|
Notes: "FreeBSD 13.0; GCE VM, built from build/env/freebsd-amd64",
|
|
|
|
SSHUsername: "gopher",
|
2022-07-26 19:05:33 +03:00
|
|
|
},
|
|
|
|
"host-freebsd-arm-paulzhol": {
|
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
2022-07-30 21:29:41 +03:00
|
|
|
Notes: "Raspberry Pi 3 Model B, FreeBSD 13.1-RELEASE with SCHED_4BSD",
|
2022-07-26 19:05:33 +03:00
|
|
|
Owners: []*gophers.Person{gh("paulzhol")},
|
|
|
|
},
|
|
|
|
"host-freebsd-arm64-dmgk": {
|
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
|
|
|
Notes: "AWS EC2 a1.large 2 vCPU 4GiB RAM, FreeBSD 12.1-STABLE",
|
|
|
|
Owners: []*gophers.Person{gh("dmgk")},
|
|
|
|
},
|
2022-08-26 22:41:14 +03:00
|
|
|
"host-freebsd-riscv64-unmatched": {
|
2022-09-26 06:45:21 +03:00
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
|
|
|
Notes: "SiFive HiFive Unmatched RISC-V board. 16 GB RAM. FreeBSD 13.1-RELEASE",
|
|
|
|
Owners: []*gophers.Person{gh("mengzhuo")},
|
|
|
|
GoBootstrap: "none",
|
|
|
|
env: []string{
|
|
|
|
"GOROOT_BOOTSTRAP=/home/gopher/go-freebsd-riscv64-bootstrap",
|
|
|
|
},
|
2022-08-26 22:41:14 +03:00
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-illumos-amd64-jclulow": {
|
|
|
|
Notes: "SmartOS base64@19.1.0 zone",
|
|
|
|
Owners: []*gophers.Person{gh("jclulow")},
|
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
|
|
|
SSHUsername: "gobuild",
|
|
|
|
},
|
|
|
|
"host-ios-arm64-corellium-ios": {
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
Notes: "Virtual iOS devices hosted by Zenly on Corellium; see issues 31722 and 40523",
|
|
|
|
Owners: []*gophers.Person{gh("steeve"), gh("changkun")}, // See https://groups.google.com/g/golang-dev/c/oiuIE7qrWp0.
|
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 3,
|
|
|
|
GoBootstrap: "none", // image has devel d6c4583ad4 (pre-Go 1.18) Dec 2021 (go.dev/issue/54246); cannot access storage.googleapis.com
|
2022-07-26 19:05:33 +03:00
|
|
|
env: []string{
|
|
|
|
"GOROOT_BOOTSTRAP=/var/root/go-ios-arm64-bootstrap",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"host-linux-amd64-alpine": {
|
2022-07-26 19:29:51 +03:00
|
|
|
Notes: "Alpine container",
|
|
|
|
ContainerImage: "linux-x86-alpine:latest",
|
|
|
|
SSHUsername: "root",
|
2022-07-26 19:05:33 +03:00
|
|
|
},
|
2022-08-03 22:43:12 +03:00
|
|
|
"host-linux-amd64-androidemu": {
|
2022-10-26 21:01:19 +03:00
|
|
|
Notes: "Debian Bullseye w/ Android SDK + emulator (use nested virt)",
|
2022-07-26 19:29:51 +03:00
|
|
|
ContainerImage: "android-amd64-emu:bff27c0c9263",
|
2022-10-26 21:01:19 +03:00
|
|
|
KonletVMImage: "android-amd64-emu-bullseye",
|
2022-07-26 19:29:51 +03:00
|
|
|
NestedVirt: true,
|
|
|
|
SSHUsername: "root",
|
2022-08-03 22:43:12 +03:00
|
|
|
},
|
2023-06-14 18:29:08 +03:00
|
|
|
"host-linux-amd64-bookworm": {
|
|
|
|
Notes: "Debian Bookworm",
|
|
|
|
ContainerImage: "linux-x86-bookworm:latest",
|
|
|
|
SSHUsername: "root",
|
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-linux-amd64-bullseye": {
|
2022-07-26 19:29:51 +03:00
|
|
|
Notes: "Debian Bullseye",
|
|
|
|
ContainerImage: "linux-x86-bullseye:latest",
|
|
|
|
SSHUsername: "root",
|
2021-08-16 22:35:39 +03:00
|
|
|
},
|
2022-10-26 21:01:19 +03:00
|
|
|
"host-linux-amd64-bullseye-vmx": {
|
|
|
|
Notes: "Debian Bullseye w/ Nested Virtualization (VMX CPU bit) enabled",
|
|
|
|
ContainerImage: "linux-x86-bullseye:latest",
|
|
|
|
NestedVirt: true,
|
|
|
|
SSHUsername: "root",
|
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-linux-amd64-buster": {
|
2022-07-26 19:29:51 +03:00
|
|
|
Notes: "Debian Buster",
|
|
|
|
ContainerImage: "linux-x86-buster:latest",
|
|
|
|
SSHUsername: "root",
|
2020-11-02 23:11:10 +03:00
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-linux-amd64-clang": {
|
2022-07-26 19:29:51 +03:00
|
|
|
Notes: "Container with clang.",
|
|
|
|
ContainerImage: "linux-x86-clang:latest",
|
|
|
|
SSHUsername: "root",
|
2019-03-14 19:06:57 +03:00
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-linux-amd64-fedora": {
|
2022-07-26 19:29:51 +03:00
|
|
|
Notes: "Fedora 30",
|
|
|
|
ContainerImage: "linux-x86-fedora:latest",
|
|
|
|
SSHUsername: "root",
|
2019-02-16 01:05:42 +03:00
|
|
|
},
|
2022-12-29 20:59:20 +03:00
|
|
|
"host-linux-amd64-js-wasm-node18": {
|
|
|
|
Notes: "Container with Node.js 18 for testing js/wasm.",
|
|
|
|
ContainerImage: "js-wasm-node18:latest",
|
|
|
|
SSHUsername: "root",
|
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-linux-amd64-localdev": {
|
cmd/coordinator, cmd/buildlet, cmd/gomote: add SSH support
This adds an SSH server to farmer.golang.org on port 2222 that proxies
SSH connections to users' gomote-created buildlet instances.
For example:
$ gomote create openbsd-amd64-60
user-bradfitz-openbsd-amd64-60-1
$ gomote ssh user-bradfitz-openbsd-amd64-60-1
Warning: Permanently added '[localhost]:33351' (ECDSA) to the list of known hosts.
OpenBSD 6.0 (GENERIC.MP) golang/go#2319: Tue Jul 26 13:00:43 MDT 2016
Welcome to OpenBSD: The proactively secure Unix-like operating system.
Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code. With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.
$
As before, if the coordinator process is restarted (or crashes, is
evicted, etc), all gomote instances die.
Not yet supported:
* scp (help wanted)
* not all host types are configured. most are. some will need slight
config tweaks to the Docker image (e.g. adding openssh-server)
Supports currently:
* linux-amd64 (host type shared by 386, nacl)
* linux-arm
* linux-arm64
* darwin
* freebsd
* openbsd
* plan9-386
* windows
Implementation details:
* the ssh server process listens on port 2222 in the coordinator
(farmer.golang.org), which is behind a GKE TCP load balancer.
* the ssh server library is github.com/gliderlabs/ssh
* authentication is done via Github users' public keys. It's assumed
that gomote user == github user. But there's a mapping in the code
for known exceptions.
* we can't give out access to this too widely. too many things are
accessible from within the host environment if you look in the right
places. Details omitted. But the Go team and other trusted gomote
users can use this.
* the buildlet binary has a new /connect-ssh handler that acts like a
CONNECT request but instead of taking an explicit host:port, just
says "give me your machine's SSH connection". The buildlet can also
start sshd if needed for the environment. The /connect-ssh handler
also installs the coordinator's public key.
* a new buildlet client library method "ConnectSSH" hits the /connect-ssh
handler and returns a net.Conn.
* the coordinator's ssh.Handler is just running the OpenSSH ssh client.
* because the OpenSSH ssh child process can't connect to a net.Conn,
an emphemeral localhost port is created on the coordinator to proxy
between the ssh client and the net.Conn returned by ConnectSSH.
* The /connect-ssh handler requires http.Hijacker, which requires
fully compliant net.Conn implementations as of Go 1.8. So I needed
to flesh out revdial too, testing it with the
golang.org/x/net/nettest package.
* plan9 doesn't have an ssh server, so we use 0intro's new conterm
program (drawterm without GUI support) to connect to plan9 from the
coordinator ssh proxy instead of using the OpenSSH ssh client
binary.
* windows doesn't have an ssh server, so we enable the telnet service
and the coordinator ssh proxy uses telnet instead on the backend
on the private network. (There is a Windows ssh server but only in
new versions.)
Happy debugging over ssh!
Fixes golang/go#19956
Change-Id: I80a62064c5f85af1f195f980c862ba29af4015f0
Reviewed-on: https://go-review.googlesource.com/50750
Reviewed-by: Herbie Ong <herbie@google.com>
Reviewed-by: Jessie Frazelle <me@jessfraz.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-07-22 22:15:56 +03:00
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 0,
|
|
|
|
Notes: "for localhost development of buildlets/gomote/coordinator only",
|
|
|
|
SSHUsername: os.Getenv("USER"),
|
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-linux-amd64-perf": {
|
|
|
|
Notes: "Cascade Lake performance testing machines",
|
2022-08-03 17:58:24 +03:00
|
|
|
machineType: "c2-standard-8", // C2 has precisely defined, consistent server architecture.
|
2022-07-26 19:05:33 +03:00
|
|
|
ContainerImage: "linux-x86-bullseye:latest",
|
|
|
|
SSHUsername: "root",
|
perf: add PGO comparisons to dashboard
CL 498278 starts collecting PGO benchmark results with key pgo:on. This
CL adds PGO results to the dashboard via two different comparison
dimensions:
1. "/pgo=on,toolchain:baseline-vs-experiment" is "toolchain:baseline" vs
"toolchain:experiment" when "pgo:on". i.e., how much has performance
changed since baseline if PGO has been enabled the entire time.
2. "/toolchain:experiment,pgo=off-vs-on" is "pgo:off" vs "pgo:on" for
"toolchain:experiment". i.e., how much performance changes when
enabling PGO at experiment.
These names are added as a suffix to the existing benchmark name. The
unmodified benchmark name remains the same as before:
"toolchain:baseline" vs "toolchain:experiment" when "pgo:off".
I would argue that tracking (1) makes the most sense for a few reasons:
a. It is easier to understand the charts. If we make a non-PGO
optimization, both the standard (non-PGO) and (1) charts will show
improvement. If we make a PGO optimization, the standard chart will be
unchanged and (1) will show improvement. If we track (2), a non-PGO
optimization may show a regression (percentage closer to zero but still
negative) because the slightly faster experiment build has a smaller
percentage improvement when PGO is applied. This looks like things are
worse even though the overall binary is still faster.
b. The ultimate goal of PGO is to save money by making more efficient
binaries, which is what (1) shows, not to make a big delta vs PGO
disabled. The delta from PGO disabled is effectively "marketing" to show
folks it is worthwhile to switch it on.
That said, both can be interesting views, so this CLs enables both while
we gain experience with them.
Adding PGO runs is expected to increase benchmarking time to closer to
8hr. Bump the timeout to be safe.
Change-Id: I974aa84c03ac8df4b4c483c57a98805edc708574
Reviewed-on: https://go-review.googlesource.com/c/build/+/498335
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Michael Pratt <mpratt@google.com>
2023-05-25 20:26:14 +03:00
|
|
|
CustomDeleteTimeout: 12 * time.Hour,
|
2022-07-26 19:05:33 +03:00
|
|
|
},
|
2022-07-29 05:41:47 +03:00
|
|
|
"host-linux-amd64-s390x-cross": {
|
2022-07-26 19:29:51 +03:00
|
|
|
Notes: "Container with s390x cross-compiler.",
|
|
|
|
ContainerImage: "linux-s390x-cross:latest",
|
2022-07-29 05:41:47 +03:00
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-linux-amd64-sid": {
|
2022-07-26 19:29:51 +03:00
|
|
|
Notes: "Debian sid, updated occasionally.",
|
|
|
|
ContainerImage: "linux-x86-sid:latest",
|
|
|
|
SSHUsername: "root",
|
2018-05-11 08:54:32 +03:00
|
|
|
},
|
2023-05-10 06:27:24 +03:00
|
|
|
"host-linux-amd64-wasip1-wasm-wasmedge": {
|
|
|
|
Notes: "Container with wasmedge for testing wasip1/wasm.",
|
|
|
|
ContainerImage: "wasip1-wasm-wasmedge:latest",
|
|
|
|
SSHUsername: "root",
|
|
|
|
},
|
2023-05-09 08:14:53 +03:00
|
|
|
"host-linux-amd64-wasip1-wasm-wasmer": {
|
|
|
|
Notes: "Container with wasmer for testing wasip1/wasm.",
|
|
|
|
ContainerImage: "wasip1-wasm-wasmer:latest",
|
|
|
|
SSHUsername: "root",
|
|
|
|
},
|
2023-03-24 07:20:10 +03:00
|
|
|
"host-linux-amd64-wasip1-wasm-wasmtime": {
|
|
|
|
Notes: "Container with wasmtime for testing wasip1/wasm.",
|
|
|
|
ContainerImage: "wasip1-wasm-wasmtime:latest",
|
|
|
|
SSHUsername: "root",
|
|
|
|
},
|
2023-03-24 04:40:06 +03:00
|
|
|
"host-linux-amd64-wasip1-wasm-wazero": {
|
|
|
|
Notes: "Container with Wazero for testing wasip1/wasm.",
|
|
|
|
ContainerImage: "wasip1-wasm-wazero:latest",
|
|
|
|
SSHUsername: "root",
|
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-linux-amd64-wsl": {
|
|
|
|
Notes: "Windows 10 WSL2 Ubuntu",
|
|
|
|
Owners: []*gophers.Person{gh("mengzhuo")},
|
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 2,
|
|
|
|
},
|
|
|
|
"host-linux-arm-aws": {
|
2022-07-26 19:29:51 +03:00
|
|
|
Notes: "Debian Buster, EC2 arm instance. See x/build/env/linux-arm/aws",
|
|
|
|
VMImage: "ami-07409163bccd5ac4d",
|
|
|
|
ContainerImage: "gobuilder-arm-aws:latest",
|
|
|
|
machineType: "m6g.xlarge",
|
dashboard,cmd/coordinator: unify and simplify GOPROXY setting behavior
The existing behavior for setting GOPROXY is rather hard to follow, and
doesn't work correctly in many cases. For example, longtest on a reverse
builder gets the GKE proxy. Before CL 479837 there were no longtest
builders outside of GCE, so this case was never covered. Fixing this is
the motivation of this CL.
They way configuration works today is:
1. buildstatus.go unconditionally sets GOPROXY to the GKE proxy [1].
2. st.conf.ModuleEnv potentially overrides GOPROXY with a more
reasonable setting, with a bunch of complex conditions.
Unify and simplify this process by moving it into buildstatus.go, where
their is now a strict ordering of possible GOPROXY values. Notable
changes:
* The GKE proxy is never used outside of GCE.
* There is a consistent default/fallback of proxy.golang.org.
I initially tried to split this into two CLs: one unifying the
implementation and the next changing the behavior, but the old behavior
is so mind-boggling that the first CL doesn't really make much sense.
The annoying part of this CL is that tests move from dashboard to
cmd/coordinator, requiring us to export additional fields so
cmd/coordinator tests can configure the builders.
The test cases themselves are unchanged except for the addition of a
non-GCE longtest builder case.
[1] Except in runSubrepoTests, which avoids doing so for reverse
builders. This was a workaround for private proxy builders in CL 275412,
but wasn't extended to other callers because only subrepo tests were
seeing a regression. More strangeness.
For golang/go#35678.
Change-Id: I6090c8c5e91ce6be9bfc07c16f36ed339c9d27ae
Reviewed-on: https://go-review.googlesource.com/c/build/+/482339
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Run-TryBot: Michael Pratt <mpratt@google.com>
2023-04-05 00:50:46 +03:00
|
|
|
IsEC2: true,
|
2022-07-26 19:29:51 +03:00
|
|
|
SSHUsername: "root",
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
},
|
2022-11-01 23:57:01 +03:00
|
|
|
"host-linux-arm64-bullseye": {
|
|
|
|
Notes: "Debian Bullseye",
|
|
|
|
ContainerImage: "linux-arm64-bullseye:latest",
|
|
|
|
machineType: "t2a",
|
|
|
|
SSHUsername: "root",
|
|
|
|
cosArchitecture: CosArchARM64,
|
|
|
|
},
|
2022-11-29 19:51:40 +03:00
|
|
|
"host-linux-arm64-bullseye-high-disk": {
|
|
|
|
Notes: "Debian Bullseye, larger boot disk size",
|
|
|
|
ContainerImage: "linux-arm64-bullseye:latest",
|
|
|
|
machineType: "t2a",
|
|
|
|
SSHUsername: "root",
|
|
|
|
cosArchitecture: CosArchARM64,
|
|
|
|
RootDriveSizeGB: 20,
|
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-linux-loong64-3a5000": {
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
Notes: "Loongson 3A5000 Box hosted by Loongson; loong64 is the short name of LoongArch 64 bit version",
|
2022-11-29 02:45:41 +03:00
|
|
|
Owners: []*gophers.Person{gh("XiaodongLoong"), gh("abner-chenc")},
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
IsReverse: true,
|
2022-11-29 02:45:41 +03:00
|
|
|
ExpectNum: 5,
|
|
|
|
GoBootstrap: "none",
|
2022-07-26 19:05:33 +03:00
|
|
|
env: []string{
|
2022-11-29 02:45:41 +03:00
|
|
|
"GOROOT_BOOTSTRAP=/usr/lib/go-linux-loong64-bootstrap",
|
2022-07-26 19:05:33 +03:00
|
|
|
},
|
|
|
|
},
|
|
|
|
"host-linux-mips64-rtrk": {
|
|
|
|
Notes: "cavium,rhino_utm8 board hosted at RT-RK.com; quad-core cpu, 8GB of ram and 240GB ssd disks.",
|
|
|
|
Owners: []*gophers.Person{gh("draganmladjenovic")}, // See https://github.com/golang/go/issues/53574#issuecomment-1169891255.
|
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
|
|
|
},
|
2022-08-03 22:27:33 +03:00
|
|
|
"host-linux-mips64le-rtrk": {
|
|
|
|
Notes: "cavium,rhino_utm8 board hosted at RT-RK.com; quad-core cpu, 8GB of ram and 240GB ssd disks.",
|
|
|
|
Owners: []*gophers.Person{gh("draganmladjenovic")}, // See https://github.com/golang/go/issues/53574#issuecomment-1169891255.
|
2022-07-26 19:05:33 +03:00
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
|
|
|
},
|
2022-10-04 16:54:05 +03:00
|
|
|
"host-linux-ppc64-sid": {
|
2022-08-28 05:20:20 +03:00
|
|
|
Notes: "Debian sid; run by Go team on osuosl.org",
|
2022-10-05 01:05:03 +03:00
|
|
|
Owners: []*gophers.Person{gh("pmur")},
|
2022-08-28 05:20:20 +03:00
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 5,
|
|
|
|
SSHUsername: "root",
|
2022-10-04 16:54:05 +03:00
|
|
|
HermeticReverse: true,
|
2022-08-28 05:20:20 +03:00
|
|
|
},
|
2023-04-12 16:46:00 +03:00
|
|
|
"host-linux-ppc64-sid-power10": {
|
2023-07-21 16:42:26 +03:00
|
|
|
Notes: "debian sid; run by Go team on osuosl.org; see x/build/env/linux-ppc64le/osuosl",
|
|
|
|
Owners: []*gophers.Person{gh("pmur")},
|
|
|
|
IsReverse: true,
|
|
|
|
env: []string{"GOPPC64=power10"},
|
2023-04-12 16:46:00 +03:00
|
|
|
ExpectNum: 5,
|
|
|
|
SSHUsername: "root",
|
|
|
|
HermeticReverse: true,
|
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-linux-ppc64le-osu": {
|
2022-10-05 01:25:44 +03:00
|
|
|
Notes: "Ubuntu 20.04; run by Go team on osuosl.org; see x/build/env/linux-ppc64le/osuosl",
|
|
|
|
Owners: []*gophers.Person{gh("pmur")},
|
2022-07-26 19:05:33 +03:00
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 5,
|
|
|
|
SSHUsername: "root",
|
|
|
|
HermeticReverse: true,
|
|
|
|
},
|
2022-12-01 01:50:25 +03:00
|
|
|
"host-linux-ppc64le-power10-osu": {
|
2023-07-21 16:42:26 +03:00
|
|
|
Notes: "Ubuntu 22.04; run by Go team on osuosl.org; see x/build/env/linux-ppc64le/osuosl",
|
|
|
|
Owners: []*gophers.Person{gh("pmur")},
|
|
|
|
IsReverse: true,
|
|
|
|
env: []string{"GOPPC64=power10"},
|
2022-12-01 01:50:25 +03:00
|
|
|
SSHUsername: "root",
|
|
|
|
HermeticReverse: true,
|
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-linux-ppc64le-power9-osu": {
|
2022-10-05 01:25:44 +03:00
|
|
|
Notes: "Ubuntu 20.04; run by Go team on osuosl.org; see x/build/env/linux-ppc64le/osuosl",
|
|
|
|
Owners: []*gophers.Person{gh("pmur")},
|
2022-07-26 19:05:33 +03:00
|
|
|
IsReverse: true,
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
env: []string{"GOPPC64=power9"},
|
2019-11-15 23:31:23 +03:00
|
|
|
SSHUsername: "root",
|
2022-07-26 19:05:33 +03:00
|
|
|
HermeticReverse: true,
|
2019-05-08 19:25:38 +03:00
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-linux-riscv64-joelsing": {
|
2021-11-16 20:42:29 +03:00
|
|
|
Notes: "SiFive HiFive Unleashed RISC-V board. 8 GB RAM, 4 cores.",
|
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
|
|
|
Owners: []*gophers.Person{gh("4a6f656c")},
|
2020-09-27 21:25:41 +03:00
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-linux-riscv64-unmatched": {
|
2021-11-16 20:42:29 +03:00
|
|
|
Notes: "SiFive HiFive Unmatched RISC-V board. 16 GB RAM, 4 cores.",
|
|
|
|
IsReverse: true,
|
2022-05-18 07:44:07 +03:00
|
|
|
ExpectNum: 2,
|
2021-11-16 20:42:29 +03:00
|
|
|
Owners: []*gophers.Person{gh("mengzhuo")},
|
2023-08-19 03:25:50 +03:00
|
|
|
|
|
|
|
// Use go1.20.7 (slightly newer than the default go1.20.6 on 2023-08-18)
|
|
|
|
// for https://go.dev/issue/62104#issuecomment-1683207172.
|
|
|
|
GoBootstrap: "go1.20.7",
|
2021-08-27 07:26:14 +03:00
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-linux-s390x": {
|
|
|
|
Notes: "run by IBM",
|
2022-10-13 17:07:25 +03:00
|
|
|
Owners: []*gophers.Person{gh("Vishwanatha-HD"), gh("srinivas-pokala")},
|
2022-07-26 19:05:33 +03:00
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 2, // See https://github.com/golang/go/issues/49557#issuecomment-969148789.
|
|
|
|
},
|
2022-11-14 19:11:34 +03:00
|
|
|
"host-netbsd-386-9_3": {
|
|
|
|
VMImage: "netbsd-i386-9-3-202211120320",
|
|
|
|
Notes: "NetBSD 9.3; GCE VM is built from script in build/env/netbsd-386",
|
|
|
|
machineType: "n2", // force Intel; see go.dev/issue/49209
|
|
|
|
SSHUsername: "root",
|
|
|
|
},
|
|
|
|
"host-netbsd-amd64-9_3": {
|
|
|
|
VMImage: "netbsd-amd64-9-3-202211120320v2",
|
|
|
|
Notes: "NetBSD 9.3; GCE VM is built from script in build/env/netbsd-amd64",
|
|
|
|
machineType: "n2", // force Intel; see go.dev/issue/49209
|
|
|
|
SSHUsername: "root",
|
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-netbsd-arm-bsiegert": {
|
2023-07-19 22:36:36 +03:00
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
|
|
|
Owners: []*gophers.Person{gh("bsiegert")},
|
2022-07-26 19:05:33 +03:00
|
|
|
},
|
|
|
|
"host-netbsd-arm64-bsiegert": {
|
2023-07-19 22:36:36 +03:00
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
|
|
|
Owners: []*gophers.Person{gh("bsiegert")},
|
2020-11-12 20:27:32 +03:00
|
|
|
},
|
2022-12-29 01:40:14 +03:00
|
|
|
"host-openbsd-386-72": {
|
|
|
|
VMImage: "openbsd-386-72",
|
|
|
|
machineType: "n2", // force Intel; see go.dev/issue/49209
|
|
|
|
Notes: "OpenBSD 7.2; GCE VM, built from build/env/openbsd-386",
|
|
|
|
SSHUsername: "gopher",
|
|
|
|
},
|
|
|
|
"host-openbsd-amd64-72": {
|
|
|
|
VMImage: "openbsd-amd64-72",
|
|
|
|
machineType: "n2", // force Intel; see go.dev/issue/49209
|
|
|
|
Notes: "OpenBSD 7.2; GCE VM, built from build/env/openbsd-amd64",
|
|
|
|
SSHUsername: "gopher",
|
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-openbsd-arm-joelsing": {
|
2023-07-19 22:36:36 +03:00
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
|
|
|
Owners: []*gophers.Person{gh("4a6f656c")},
|
2017-08-06 01:56:18 +03:00
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-openbsd-arm64-joelsing": {
|
2023-07-19 22:36:36 +03:00
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
|
|
|
Owners: []*gophers.Person{gh("4a6f656c")},
|
2017-08-06 01:56:18 +03:00
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-openbsd-mips64-joelsing": {
|
2023-07-19 22:36:36 +03:00
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
|
|
|
Owners: []*gophers.Person{gh("4a6f656c")},
|
2019-10-03 15:56:19 +03:00
|
|
|
},
|
2023-03-06 06:57:16 +03:00
|
|
|
"host-openbsd-ppc64-n2vi": {
|
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
|
|
|
Owners: []*gophers.Person{gh("n2vi")},
|
|
|
|
Notes: "TalosII T2P9D01 (dual Power9 32GB) OpenBSD-current",
|
|
|
|
GoBootstrap: "none",
|
|
|
|
env: []string{
|
|
|
|
"GOROOT_BOOTSTRAP=/home/gopher/go-openbsd-ppc64-bootstrap",
|
|
|
|
},
|
|
|
|
},
|
2023-08-03 09:07:29 +03:00
|
|
|
"host-openbsd-riscv64-joelsing": {
|
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
|
|
|
Owners: []*gophers.Person{gh("4a6f656c")},
|
|
|
|
GoBootstrap: "none",
|
|
|
|
env: []string{
|
|
|
|
"GOROOT_BOOTSTRAP=/home/gopher/go-openbsd-riscv64-bootstrap",
|
|
|
|
},
|
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-plan9-386-0intro": {
|
2021-11-16 20:42:29 +03:00
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
2022-07-26 19:05:33 +03:00
|
|
|
Notes: "QEMU VM, Plan 9 from Bell Labs",
|
2021-11-16 20:42:29 +03:00
|
|
|
Owners: []*gophers.Person{gh("0intro")},
|
2017-08-06 18:57:06 +03:00
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-plan9-386-gce": {
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
VMImage: "plan9-386-v7",
|
|
|
|
Notes: "Plan 9 from 0intro; GCE VM, built from build/env/plan9-386",
|
|
|
|
env: []string{"GO_TEST_TIMEOUT_SCALE=3"},
|
2022-07-26 19:05:33 +03:00
|
|
|
},
|
|
|
|
"host-plan9-amd64-0intro": {
|
2021-11-16 20:42:29 +03:00
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
|
|
|
Notes: "QEMU VM, Plan 9 from Bell Labs, 9k kernel",
|
|
|
|
Owners: []*gophers.Person{gh("0intro")},
|
2017-08-06 18:57:06 +03:00
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-plan9-arm-0intro": {
|
2021-11-16 20:42:29 +03:00
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
2022-07-26 19:05:33 +03:00
|
|
|
Notes: "Raspberry Pi 3 Model B, Plan 9 from Bell Labs",
|
2021-11-16 20:42:29 +03:00
|
|
|
Owners: []*gophers.Person{gh("0intro")},
|
2019-05-09 19:52:40 +03:00
|
|
|
},
|
2022-08-03 22:27:33 +03:00
|
|
|
"host-solaris-oracle-amd64-oraclerel": {
|
2022-07-26 19:05:33 +03:00
|
|
|
Notes: "Oracle Solaris amd64 Release System",
|
2022-08-05 01:12:22 +03:00
|
|
|
HostArch: "solaris-amd64",
|
2022-07-26 19:05:33 +03:00
|
|
|
Owners: []*gophers.Person{gh("rorth")}, // https://github.com/golang/go/issues/15581#issuecomment-550368581
|
|
|
|
IsReverse: true,
|
|
|
|
ExpectNum: 1,
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-windows-amd64-2016": {
|
2023-06-28 21:48:47 +03:00
|
|
|
VMImage: "windows-amd64-server-2016-v9",
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
SSHUsername: "gopher",
|
2019-11-23 02:01:25 +03:00
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-windows-amd64-2016-big": {
|
2023-06-28 21:48:47 +03:00
|
|
|
VMImage: "windows-amd64-server-2016-v9",
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
machineType: "e2-standard-16",
|
|
|
|
SSHUsername: "gopher",
|
2022-06-21 17:27:54 +03:00
|
|
|
},
|
2022-07-26 19:05:33 +03:00
|
|
|
"host-windows-arm64-zx2c4": {
|
2021-11-16 20:42:29 +03:00
|
|
|
IsReverse: true,
|
2022-07-26 19:05:33 +03:00
|
|
|
ExpectNum: 0,
|
|
|
|
Owners: []*gophers.Person{gh("zx2c4")},
|
2021-10-01 21:59:33 +03:00
|
|
|
},
|
2023-01-04 23:46:55 +03:00
|
|
|
"host-windows11-arm64-azure": { // host name known to cmd/buildlet/stage0, cannot change
|
|
|
|
Notes: "Azure windows 11 arm64 VMs",
|
|
|
|
HostArch: "windows-arm64",
|
|
|
|
IsReverse: true,
|
2023-02-02 18:51:13 +03:00
|
|
|
ExpectNum: 2,
|
2023-01-04 23:46:55 +03:00
|
|
|
},
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
}
|
|
|
|
|
2021-11-16 20:42:29 +03:00
|
|
|
func gh(githubUsername string) *gophers.Person {
|
|
|
|
p := gophers.GetPerson("@" + githubUsername)
|
|
|
|
if p == nil {
|
|
|
|
panic("person with GitHub username " + githubUsername + " does not exist in the golang.org/x/build/internal/gophers package")
|
|
|
|
}
|
|
|
|
return p
|
|
|
|
}
|
|
|
|
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
func init() {
|
|
|
|
for key, c := range Hosts {
|
|
|
|
if key == "" {
|
|
|
|
panic("empty string key in Hosts")
|
|
|
|
}
|
|
|
|
if c.HostType == "" {
|
|
|
|
c.HostType = key
|
|
|
|
}
|
|
|
|
if c.HostType != key {
|
|
|
|
panic(fmt.Sprintf("HostType %q != key %q", c.HostType, key))
|
|
|
|
}
|
2022-07-26 19:29:51 +03:00
|
|
|
if c.HostArch == "" {
|
|
|
|
f := strings.Split(c.HostType, "-")
|
|
|
|
if len(f) < 3 {
|
|
|
|
panic(fmt.Sprintf("invalid HostType %q", c.HostType))
|
|
|
|
}
|
|
|
|
c.HostArch = f[1] + "-" + f[2] // "linux-amd64"
|
|
|
|
if f[2] == "arm" {
|
|
|
|
c.HostArch += "-7" // assume newer ARM
|
|
|
|
}
|
|
|
|
}
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
if c.GoBootstrap == "" {
|
|
|
|
c.GoBootstrap = GoBootstrap
|
|
|
|
}
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
nSet := 0
|
2021-05-26 04:47:41 +03:00
|
|
|
if c.VMImage != "" {
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
nSet++
|
|
|
|
}
|
dashboard,cmd/coordinator: unify and simplify GOPROXY setting behavior
The existing behavior for setting GOPROXY is rather hard to follow, and
doesn't work correctly in many cases. For example, longtest on a reverse
builder gets the GKE proxy. Before CL 479837 there were no longtest
builders outside of GCE, so this case was never covered. Fixing this is
the motivation of this CL.
They way configuration works today is:
1. buildstatus.go unconditionally sets GOPROXY to the GKE proxy [1].
2. st.conf.ModuleEnv potentially overrides GOPROXY with a more
reasonable setting, with a bunch of complex conditions.
Unify and simplify this process by moving it into buildstatus.go, where
their is now a strict ordering of possible GOPROXY values. Notable
changes:
* The GKE proxy is never used outside of GCE.
* There is a consistent default/fallback of proxy.golang.org.
I initially tried to split this into two CLs: one unifying the
implementation and the next changing the behavior, but the old behavior
is so mind-boggling that the first CL doesn't really make much sense.
The annoying part of this CL is that tests move from dashboard to
cmd/coordinator, requiring us to export additional fields so
cmd/coordinator tests can configure the builders.
The test cases themselves are unchanged except for the addition of a
non-GCE longtest builder case.
[1] Except in runSubrepoTests, which avoids doing so for reverse
builders. This was a workaround for private proxy builders in CL 275412,
but wasn't extended to other callers because only subrepo tests were
seeing a regression. More strangeness.
For golang/go#35678.
Change-Id: I6090c8c5e91ce6be9bfc07c16f36ed339c9d27ae
Reviewed-on: https://go-review.googlesource.com/c/build/+/482339
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Run-TryBot: Michael Pratt <mpratt@google.com>
2023-04-05 00:50:46 +03:00
|
|
|
if c.ContainerImage != "" && !c.IsEC2 {
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
nSet++
|
|
|
|
}
|
|
|
|
if c.IsReverse {
|
|
|
|
nSet++
|
|
|
|
}
|
|
|
|
if nSet != 1 {
|
2018-05-05 19:36:05 +03:00
|
|
|
panic(fmt.Sprintf("exactly one of VMImage, ContainerImage, IsReverse must be set for host %q; got %v", key, nSet))
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-11-01 23:57:01 +03:00
|
|
|
// CosArch defines the diffrent COS images types used.
|
|
|
|
type CosArch string
|
|
|
|
|
|
|
|
const (
|
2023-04-04 21:53:51 +03:00
|
|
|
// TODO(59418,59419): The kernel in COS release 105 likely breaks ASAN and MSAN for both
|
|
|
|
// gcc and clang. Pin to 101, the previous release.
|
|
|
|
CosArchAMD64 CosArch = "cos-101-lts" // COS image for AMD64 architecture
|
2022-11-01 23:57:01 +03:00
|
|
|
CosArchARM64 = "cos-arm64-stable" // COS image for ARM64 architecture
|
|
|
|
)
|
|
|
|
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
// A HostConfig describes the available ways to obtain buildlets of
|
2020-04-07 00:34:17 +03:00
|
|
|
// different types. Some host configs can serve multiple
|
2022-07-26 18:46:45 +03:00
|
|
|
// builders. For example, a host config of "host-linux-amd64-bullseye" can
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
// serve linux-amd64, linux-amd64-race, linux-386, linux-386-387, etc.
|
|
|
|
type HostConfig struct {
|
|
|
|
// HostType is the unique name of this host config. It is also
|
|
|
|
// the key in the Hosts map.
|
|
|
|
HostType string
|
|
|
|
|
2022-07-26 19:29:51 +03:00
|
|
|
// HostArch is a string identifying the host architecture, to decide which binaries to run on it.
|
|
|
|
// If unset, it is derived in func init from the HostType
|
|
|
|
// (for example, host-linux-amd64-foo has HostArch "linux-amd64").
|
|
|
|
// For clarity, the HostArch for 32-bit arm always ends in -5 or -7
|
|
|
|
// to specify the GOARM value; implicit HostArch always use -7.
|
|
|
|
// (This specificity is necessary because there is no one value that
|
|
|
|
// works on all 32-bit ARM chips on non-Linux operating systems.)
|
|
|
|
//
|
|
|
|
// If set explicitly, HostArch should have the form "GOOS-GOARCH-suffix",
|
|
|
|
// where suffix is the GO$GOARCH setting (that is, GOARM for GOARCH=arm).
|
|
|
|
// For example "openbsd-arm-5" for GOOS=openbsd GOARCH=arm GOARM=5.
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
//
|
|
|
|
// (See the BuildletBinaryURL and GoBootstrapURL methods.)
|
2022-07-26 19:29:51 +03:00
|
|
|
HostArch string
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
// GoBootstrap is the version of Go to use for bootstrap.
|
|
|
|
// If unset, it is set in func init to GoBootstrap (the global constant).
|
|
|
|
//
|
|
|
|
// If GoBootstrap is set to "none", it means this buildlet is not given a new bootstrap
|
|
|
|
// toolchain for each build, typically because it cannot download from
|
|
|
|
// storage.googleapis.com.
|
|
|
|
//
|
2023-08-19 03:28:45 +03:00
|
|
|
// For bootstrap versions prior to Go 1.21.0,
|
|
|
|
// a bootstrap toolchain built with that version must be in the buildlet bucket,
|
|
|
|
// usually uploaded by 'genbootstrap -upload all'.
|
|
|
|
//
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
// (See the GoBootstrapURL method.)
|
|
|
|
GoBootstrap string
|
|
|
|
|
2020-08-18 20:32:05 +03:00
|
|
|
// Exactly 1 of these must be set (with the exception of EC2 instances).
|
|
|
|
// An EC2 instance may run a container inside a VM. In that case, a VMImage
|
|
|
|
// and ContainerImage will both be set.
|
2018-05-05 19:36:05 +03:00
|
|
|
VMImage string // e.g. "openbsd-amd64-60"
|
|
|
|
ContainerImage string // e.g. "linux-buildlet-std:latest" (suffix after "gcr.io/<PROJ>/")
|
|
|
|
IsReverse bool // if true, only use the reverse buildlet pool
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
|
2021-10-01 21:59:33 +03:00
|
|
|
// GCE options, if VMImage != "" || ContainerImage != ""
|
2022-11-01 23:57:01 +03:00
|
|
|
machineType string // optional GCE instance type ("n2-standard-4") or instance class ("n2")
|
|
|
|
RegularDisk bool // if true, use spinning disk instead of SSD
|
|
|
|
MinCPUPlatform string // optional. e2 instances are not supported. see https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform.
|
|
|
|
cosArchitecture CosArch // optional. GCE instances which use COS need the architecture set. Default: CosArchAMD64
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
|
2020-05-13 20:27:15 +03:00
|
|
|
// EC2 options
|
dashboard,cmd/coordinator: unify and simplify GOPROXY setting behavior
The existing behavior for setting GOPROXY is rather hard to follow, and
doesn't work correctly in many cases. For example, longtest on a reverse
builder gets the GKE proxy. Before CL 479837 there were no longtest
builders outside of GCE, so this case was never covered. Fixing this is
the motivation of this CL.
They way configuration works today is:
1. buildstatus.go unconditionally sets GOPROXY to the GKE proxy [1].
2. st.conf.ModuleEnv potentially overrides GOPROXY with a more
reasonable setting, with a bunch of complex conditions.
Unify and simplify this process by moving it into buildstatus.go, where
their is now a strict ordering of possible GOPROXY values. Notable
changes:
* The GKE proxy is never used outside of GCE.
* There is a consistent default/fallback of proxy.golang.org.
I initially tried to split this into two CLs: one unifying the
implementation and the next changing the behavior, but the old behavior
is so mind-boggling that the first CL doesn't really make much sense.
The annoying part of this CL is that tests move from dashboard to
cmd/coordinator, requiring us to export additional fields so
cmd/coordinator tests can configure the builders.
The test cases themselves are unchanged except for the addition of a
non-GCE longtest builder case.
[1] Except in runSubrepoTests, which avoids doing so for reverse
builders. This was a workaround for private proxy builders in CL 275412,
but wasn't extended to other callers because only subrepo tests were
seeing a regression. More strangeness.
For golang/go#35678.
Change-Id: I6090c8c5e91ce6be9bfc07c16f36ed339c9d27ae
Reviewed-on: https://go-review.googlesource.com/c/build/+/482339
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Run-TryBot: Michael Pratt <mpratt@google.com>
2023-04-05 00:50:46 +03:00
|
|
|
IsEC2 bool // if true, the instance is configured to run on EC2
|
2020-05-13 20:27:15 +03:00
|
|
|
|
2022-05-13 19:08:32 +03:00
|
|
|
// GCE or EC2 options:
|
|
|
|
//
|
|
|
|
// CustomDeleteTimeout is an optional custom timeout after which the VM is forcibly destroyed and the build is retried.
|
|
|
|
// Zero duration defers decision to internal/coordinator/pool package, which is enough for longtest post-submit builds.
|
|
|
|
// (This is generally an internal implementation detail, currently left behind only for the -perf builder.)
|
|
|
|
CustomDeleteTimeout time.Duration
|
2022-01-13 19:26:27 +03:00
|
|
|
|
|
|
|
// Reverse options
|
cmd/coordinator, cmd/buildlet, cmd/gomote: add SSH support
This adds an SSH server to farmer.golang.org on port 2222 that proxies
SSH connections to users' gomote-created buildlet instances.
For example:
$ gomote create openbsd-amd64-60
user-bradfitz-openbsd-amd64-60-1
$ gomote ssh user-bradfitz-openbsd-amd64-60-1
Warning: Permanently added '[localhost]:33351' (ECDSA) to the list of known hosts.
OpenBSD 6.0 (GENERIC.MP) golang/go#2319: Tue Jul 26 13:00:43 MDT 2016
Welcome to OpenBSD: The proactively secure Unix-like operating system.
Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code. With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.
$
As before, if the coordinator process is restarted (or crashes, is
evicted, etc), all gomote instances die.
Not yet supported:
* scp (help wanted)
* not all host types are configured. most are. some will need slight
config tweaks to the Docker image (e.g. adding openssh-server)
Supports currently:
* linux-amd64 (host type shared by 386, nacl)
* linux-arm
* linux-arm64
* darwin
* freebsd
* openbsd
* plan9-386
* windows
Implementation details:
* the ssh server process listens on port 2222 in the coordinator
(farmer.golang.org), which is behind a GKE TCP load balancer.
* the ssh server library is github.com/gliderlabs/ssh
* authentication is done via Github users' public keys. It's assumed
that gomote user == github user. But there's a mapping in the code
for known exceptions.
* we can't give out access to this too widely. too many things are
accessible from within the host environment if you look in the right
places. Details omitted. But the Go team and other trusted gomote
users can use this.
* the buildlet binary has a new /connect-ssh handler that acts like a
CONNECT request but instead of taking an explicit host:port, just
says "give me your machine's SSH connection". The buildlet can also
start sshd if needed for the environment. The /connect-ssh handler
also installs the coordinator's public key.
* a new buildlet client library method "ConnectSSH" hits the /connect-ssh
handler and returns a net.Conn.
* the coordinator's ssh.Handler is just running the OpenSSH ssh client.
* because the OpenSSH ssh child process can't connect to a net.Conn,
an emphemeral localhost port is created on the coordinator to proxy
between the ssh client and the net.Conn returned by ConnectSSH.
* The /connect-ssh handler requires http.Hijacker, which requires
fully compliant net.Conn implementations as of Go 1.8. So I needed
to flesh out revdial too, testing it with the
golang.org/x/net/nettest package.
* plan9 doesn't have an ssh server, so we use 0intro's new conterm
program (drawterm without GUI support) to connect to plan9 from the
coordinator ssh proxy instead of using the OpenSSH ssh client
binary.
* windows doesn't have an ssh server, so we enable the telnet service
and the coordinator ssh proxy uses telnet instead on the backend
on the private network. (There is a Windows ssh server but only in
new versions.)
Happy debugging over ssh!
Fixes golang/go#19956
Change-Id: I80a62064c5f85af1f195f980c862ba29af4015f0
Reviewed-on: https://go-review.googlesource.com/50750
Reviewed-by: Herbie Ong <herbie@google.com>
Reviewed-by: Jessie Frazelle <me@jessfraz.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-07-22 22:15:56 +03:00
|
|
|
ExpectNum int // expected number of reverse buildlets of this type
|
|
|
|
HermeticReverse bool // whether reverse buildlet has fresh env per conn
|
2022-10-04 23:42:12 +03:00
|
|
|
GoogleReverse bool // whether this reverse builder is owned by Google
|
2017-02-24 20:50:49 +03:00
|
|
|
|
2019-02-16 01:05:42 +03:00
|
|
|
// Container image options, if ContainerImage != "":
|
2021-10-15 04:54:32 +03:00
|
|
|
NestedVirt bool // container requires VMX nested virtualization. e2 and n2d instances are not supported.
|
2019-02-22 00:10:54 +03:00
|
|
|
KonletVMImage string // optional VM image (containing konlet) to use instead of default
|
2019-02-16 01:05:42 +03:00
|
|
|
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
// Optional base env.
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
env []string
|
2016-03-22 01:05:52 +03:00
|
|
|
|
2021-11-16 20:42:29 +03:00
|
|
|
Owners []*gophers.Person // owners; empty means golang-dev
|
|
|
|
Notes string // notes for humans
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
|
cmd/coordinator, cmd/buildlet, cmd/gomote: add SSH support
This adds an SSH server to farmer.golang.org on port 2222 that proxies
SSH connections to users' gomote-created buildlet instances.
For example:
$ gomote create openbsd-amd64-60
user-bradfitz-openbsd-amd64-60-1
$ gomote ssh user-bradfitz-openbsd-amd64-60-1
Warning: Permanently added '[localhost]:33351' (ECDSA) to the list of known hosts.
OpenBSD 6.0 (GENERIC.MP) golang/go#2319: Tue Jul 26 13:00:43 MDT 2016
Welcome to OpenBSD: The proactively secure Unix-like operating system.
Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code. With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.
$
As before, if the coordinator process is restarted (or crashes, is
evicted, etc), all gomote instances die.
Not yet supported:
* scp (help wanted)
* not all host types are configured. most are. some will need slight
config tweaks to the Docker image (e.g. adding openssh-server)
Supports currently:
* linux-amd64 (host type shared by 386, nacl)
* linux-arm
* linux-arm64
* darwin
* freebsd
* openbsd
* plan9-386
* windows
Implementation details:
* the ssh server process listens on port 2222 in the coordinator
(farmer.golang.org), which is behind a GKE TCP load balancer.
* the ssh server library is github.com/gliderlabs/ssh
* authentication is done via Github users' public keys. It's assumed
that gomote user == github user. But there's a mapping in the code
for known exceptions.
* we can't give out access to this too widely. too many things are
accessible from within the host environment if you look in the right
places. Details omitted. But the Go team and other trusted gomote
users can use this.
* the buildlet binary has a new /connect-ssh handler that acts like a
CONNECT request but instead of taking an explicit host:port, just
says "give me your machine's SSH connection". The buildlet can also
start sshd if needed for the environment. The /connect-ssh handler
also installs the coordinator's public key.
* a new buildlet client library method "ConnectSSH" hits the /connect-ssh
handler and returns a net.Conn.
* the coordinator's ssh.Handler is just running the OpenSSH ssh client.
* because the OpenSSH ssh child process can't connect to a net.Conn,
an emphemeral localhost port is created on the coordinator to proxy
between the ssh client and the net.Conn returned by ConnectSSH.
* The /connect-ssh handler requires http.Hijacker, which requires
fully compliant net.Conn implementations as of Go 1.8. So I needed
to flesh out revdial too, testing it with the
golang.org/x/net/nettest package.
* plan9 doesn't have an ssh server, so we use 0intro's new conterm
program (drawterm without GUI support) to connect to plan9 from the
coordinator ssh proxy instead of using the OpenSSH ssh client
binary.
* windows doesn't have an ssh server, so we enable the telnet service
and the coordinator ssh proxy uses telnet instead on the backend
on the private network. (There is a Windows ssh server but only in
new versions.)
Happy debugging over ssh!
Fixes golang/go#19956
Change-Id: I80a62064c5f85af1f195f980c862ba29af4015f0
Reviewed-on: https://go-review.googlesource.com/50750
Reviewed-by: Herbie Ong <herbie@google.com>
Reviewed-by: Jessie Frazelle <me@jessfraz.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-07-22 22:15:56 +03:00
|
|
|
SSHUsername string // username to ssh as, empty means not supported
|
2022-11-29 19:51:40 +03:00
|
|
|
|
|
|
|
RootDriveSizeGB int64 // optional, GCE instance root size in base-2 GB. Default: default size for instance type.
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
}
|
|
|
|
|
2022-11-01 23:57:01 +03:00
|
|
|
// CosArchitecture returns the COS architecture to use with the host. The default is CosArchAMD64.
|
|
|
|
func (hc *HostConfig) CosArchitecture() CosArch {
|
|
|
|
if hc.cosArchitecture == CosArch("") {
|
|
|
|
return CosArchAMD64
|
|
|
|
}
|
|
|
|
return hc.cosArchitecture
|
|
|
|
}
|
|
|
|
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
// A BuildConfig describes how to run a builder.
|
|
|
|
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.
|
2022-07-26 18:46:45 +03:00
|
|
|
// For example, "host-linux-amd64-bullseye".
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
HostType string
|
|
|
|
|
2022-07-22 19:04:15 +03:00
|
|
|
// KnownIssues is a slice of non-zero go.dev/issue/nnn numbers for a
|
2022-05-26 18:06:10 +03:00
|
|
|
// builder that may fail due to a known issue, such as because it is a new
|
2020-09-25 18:52:04 +03:00
|
|
|
// builder still in development/testing, or because the feature
|
2020-04-07 00:34:17 +03:00
|
|
|
// or port that it's meant to test hasn't been added yet, etc.
|
|
|
|
//
|
|
|
|
// A non-zero value here means that failures on this builder should not
|
|
|
|
// be considered a serious regression and don't need investigation beyond
|
2022-05-26 18:06:10 +03:00
|
|
|
// what is already in scope of the listed issues.
|
|
|
|
KnownIssues []int
|
2020-04-07 00:34:17 +03:00
|
|
|
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
Notes string // notes for humans
|
|
|
|
|
2019-03-07 20:44:41 +03:00
|
|
|
// tryBot optionally specifies a policy func for whether trybots are enabled.
|
|
|
|
// nil means off. Even if tryBot returns true, BuildConfig.BuildsRepo must also
|
|
|
|
// return true. See the implementation of BuildConfig.BuildsRepoTryBot.
|
|
|
|
// The proj is "go", "net", etc. The branch is proj's branch.
|
|
|
|
// The goBranch is the same as branch for proj "go", else it's the go branch
|
|
|
|
// ("master, "release-branch.go1.12", etc).
|
|
|
|
tryBot func(proj, branch, goBranch string) bool
|
|
|
|
tryOnly bool // only used for trybots, and not regular builds
|
|
|
|
|
2023-02-02 21:54:40 +03:00
|
|
|
// CompileOnly indicates that tests should only be compiled but not run.
|
|
|
|
// Note that this will not prevent the test binary from running for tests
|
|
|
|
// for the main Go repo, so this flag is insufficient for disabling
|
|
|
|
// tests in a cross-compiled setting. See #58297.
|
2023-02-02 22:11:23 +03:00
|
|
|
//
|
|
|
|
// For subrepo tests however, this flag is sufficient to ensure that test
|
|
|
|
// binaries will only be built, not executed.
|
2023-02-02 21:54:40 +03:00
|
|
|
CompileOnly bool
|
|
|
|
|
|
|
|
// FlakyNet indicates that network tests are flaky on this builder.
|
|
|
|
// The builder will try to run the tests anyway, but will ignore some of the
|
|
|
|
// failures.
|
|
|
|
FlakyNet bool
|
2019-03-07 20:44:41 +03:00
|
|
|
|
2020-07-01 21:45:10 +03:00
|
|
|
// buildsRepo optionally specifies whether this builder does
|
|
|
|
// builds (of any type) for the given repo ("go", "net", etc.)
|
|
|
|
// and its branch ("master", "release-branch.go1.12", "dev.link", etc.).
|
|
|
|
// goBranch is the branch of "go" to build against. If repo == "go",
|
|
|
|
// goBranch == branch.
|
2020-03-19 17:34:11 +03:00
|
|
|
//
|
2020-07-01 21:45:10 +03:00
|
|
|
// If nil, a default set of repos as reported by buildRepoByDefault
|
|
|
|
// is built. See buildsRepoAtAll method for details.
|
2020-03-19 17:34:11 +03:00
|
|
|
//
|
|
|
|
// To implement a minor change to the default policy, create a
|
2020-07-01 21:45:10 +03:00
|
|
|
// function that uses buildRepoByDefault. For example:
|
2020-03-19 17:34:11 +03:00
|
|
|
//
|
|
|
|
// buildsRepo: func(repo, branch, goBranch string) bool {
|
2020-07-01 21:45:10 +03:00
|
|
|
// b := buildRepoByDefault(repo)
|
2020-03-19 17:34:11 +03:00
|
|
|
// // ... modify b from the default value as needed ...
|
|
|
|
// return b
|
|
|
|
// }
|
|
|
|
//
|
2019-03-07 20:44:41 +03:00
|
|
|
buildsRepo func(repo, branch, goBranch string) bool
|
2019-03-01 19:54:25 +03:00
|
|
|
|
2021-10-11 20:25:58 +03:00
|
|
|
// RunBench enables benchmarking of the toolchain using x/benchmarks.
|
|
|
|
// This only applies when building x/benchmarks.
|
|
|
|
RunBench bool
|
|
|
|
|
dashboard, cmd/coordinator, maintner/maintnerd: add support for BuildConfig.MinimumGoVersion field
The new BuildConfig.MinimumGoVersion field specifies the minimum
Go version the builder is allowed to use. It's useful when some
of the builders are too new, and do not support all of the supported
Go releases (e.g., openbsd-amd64-64 and freebsd-amd64-12_0 currently
require Go 1.11 and don't work on Go 1.10).
It only needs to be set when a builder doesn't support all supported
Go releases, since we don't typically test unsupported Go releases.
To allow cmd/coordinator to use this field and filter out work it
receives from maintner/maintnerd's GoFindTryWork RPC call,
we add a GoVersion slice to apipb.GerritTryWorkItem,
and populate it in maintapi.apiService.GoFindTryWork method.
For trybots on the Go repo, the GoVersion field is determined from
the branch name. For "release-branch.goX.Y" branches, it parses out
the major-minor Go version from the branch name. For master and
other branches, it assumes the latest Go release.
For trybots on subrepos, we already have the Go version information
available, so use it directly.
Afterwards, all that's left is to modify newTrySet in cmd/coordinator
to make use of BuildConfig.MinimumGoVersion and work.GoVersion to skip
builders that are too new for the Go version that needs to be tested.
Fixes golang/go#29265
Change-Id: I50b01830647e33e37e9eb8b89e0f2518812fa44f
Reviewed-on: https://go-review.googlesource.com/c/155463
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-01-12 00:44:01 +03:00
|
|
|
// MinimumGoVersion optionally specifies the minimum Go version
|
|
|
|
// this builder is allowed to use. It can be useful for skipping
|
|
|
|
// builders that are too new and no longer support some supported
|
|
|
|
// Go versions. It doesn't need to be set for builders that support
|
|
|
|
// all supported Go versions.
|
|
|
|
//
|
|
|
|
// Note: This field currently has effect on trybot runs only.
|
2019-03-07 20:44:41 +03:00
|
|
|
//
|
|
|
|
// TODO: unexport this and make buildsRepoAtAll return false on too-old
|
|
|
|
// of repos. The callers in coordinator will need updating.
|
dashboard, cmd/coordinator, maintner/maintnerd: add support for BuildConfig.MinimumGoVersion field
The new BuildConfig.MinimumGoVersion field specifies the minimum
Go version the builder is allowed to use. It's useful when some
of the builders are too new, and do not support all of the supported
Go releases (e.g., openbsd-amd64-64 and freebsd-amd64-12_0 currently
require Go 1.11 and don't work on Go 1.10).
It only needs to be set when a builder doesn't support all supported
Go releases, since we don't typically test unsupported Go releases.
To allow cmd/coordinator to use this field and filter out work it
receives from maintner/maintnerd's GoFindTryWork RPC call,
we add a GoVersion slice to apipb.GerritTryWorkItem,
and populate it in maintapi.apiService.GoFindTryWork method.
For trybots on the Go repo, the GoVersion field is determined from
the branch name. For "release-branch.goX.Y" branches, it parses out
the major-minor Go version from the branch name. For master and
other branches, it assumes the latest Go release.
For trybots on subrepos, we already have the Go version information
available, so use it directly.
Afterwards, all that's left is to modify newTrySet in cmd/coordinator
to make use of BuildConfig.MinimumGoVersion and work.GoVersion to skip
builders that are too new for the Go version that needs to be tested.
Fixes golang/go#29265
Change-Id: I50b01830647e33e37e9eb8b89e0f2518812fa44f
Reviewed-on: https://go-review.googlesource.com/c/155463
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-01-12 00:44:01 +03:00
|
|
|
MinimumGoVersion types.MajorMinor
|
|
|
|
|
2017-04-13 07:34:42 +03:00
|
|
|
// SkipSnapshot, if true, means to not fetch a tarball
|
|
|
|
// snapshot of the world post-make.bash from the buildlet (and
|
|
|
|
// thus to not write it to Google Cloud Storage). This is
|
|
|
|
// incompatible with sharded tests, and should only be used
|
|
|
|
// for very slow builders or networks, unable to transfer
|
|
|
|
// the tarball in under ~5 minutes.
|
|
|
|
SkipSnapshot bool
|
|
|
|
|
2016-09-23 02:29:31 +03:00
|
|
|
// 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
|
2023-02-02 21:22:07 +03:00
|
|
|
// storage.
|
2016-09-23 02:29:31 +03:00
|
|
|
StopAfterMake bool
|
|
|
|
|
2022-04-28 17:24:01 +03:00
|
|
|
// privateGoProxy for builder has it's own Go proxy instead of
|
dashboard,cmd/coordinator: unify and simplify GOPROXY setting behavior
The existing behavior for setting GOPROXY is rather hard to follow, and
doesn't work correctly in many cases. For example, longtest on a reverse
builder gets the GKE proxy. Before CL 479837 there were no longtest
builders outside of GCE, so this case was never covered. Fixing this is
the motivation of this CL.
They way configuration works today is:
1. buildstatus.go unconditionally sets GOPROXY to the GKE proxy [1].
2. st.conf.ModuleEnv potentially overrides GOPROXY with a more
reasonable setting, with a bunch of complex conditions.
Unify and simplify this process by moving it into buildstatus.go, where
their is now a strict ordering of possible GOPROXY values. Notable
changes:
* The GKE proxy is never used outside of GCE.
* There is a consistent default/fallback of proxy.golang.org.
I initially tried to split this into two CLs: one unifying the
implementation and the next changing the behavior, but the old behavior
is so mind-boggling that the first CL doesn't really make much sense.
The annoying part of this CL is that tests move from dashboard to
cmd/coordinator, requiring us to export additional fields so
cmd/coordinator tests can configure the builders.
The test cases themselves are unchanged except for the addition of a
non-GCE longtest builder case.
[1] Except in runSubrepoTests, which avoids doing so for reverse
builders. This was a workaround for private proxy builders in CL 275412,
but wasn't extended to other callers because only subrepo tests were
seeing a regression. More strangeness.
For golang/go#35678.
Change-Id: I6090c8c5e91ce6be9bfc07c16f36ed339c9d27ae
Reviewed-on: https://go-review.googlesource.com/c/build/+/482339
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Run-TryBot: Michael Pratt <mpratt@google.com>
2023-04-05 00:50:46 +03:00
|
|
|
// proxy.golang.org, pre-set in GOPROXY on the builder.
|
2022-04-28 17:24:01 +03:00
|
|
|
privateGoProxy bool
|
|
|
|
|
2017-04-22 02:41:12 +03:00
|
|
|
// InstallRacePackages controls which packages to "go install
|
|
|
|
// -race <pkgs>" after running make.bash (or equivalent). If
|
|
|
|
// the builder ends in "-race", the default if non-nil is just
|
|
|
|
// "std".
|
|
|
|
InstallRacePackages []string
|
|
|
|
|
2017-05-20 00:23:14 +03:00
|
|
|
// GoDeps is a list of of git sha1 commits that must be in the
|
|
|
|
// commit to be tested's history. If absent, this builder is
|
|
|
|
// not run for that commit.
|
|
|
|
GoDeps []string
|
|
|
|
|
2020-04-09 19:47:03 +03:00
|
|
|
// distTestAdjust optionally specifies a function that can
|
|
|
|
// adjust the cmd/dist test policy for this builder.
|
|
|
|
//
|
|
|
|
// The BuildConfig.ShouldRunDistTest method implements the
|
|
|
|
// default cmd/dist test policy, and then calls distTestAdjust
|
|
|
|
// to adjust that decision further, if distTestAdjust is not nil.
|
|
|
|
//
|
|
|
|
// The initial value of the run parameter is what the default
|
|
|
|
// policy said. The returned value from distTestAdjust is what
|
|
|
|
// BuildConfig.ShouldRunDistTest reports to the caller.
|
|
|
|
//
|
|
|
|
// For example:
|
|
|
|
//
|
2020-04-09 23:24:30 +03:00
|
|
|
// distTestAdjust: func(run bool, distTest string, isNormalTry bool) bool {
|
2020-04-09 19:47:03 +03:00
|
|
|
// // ... modify run from the initial value as needed ...
|
|
|
|
// return run
|
|
|
|
// }
|
|
|
|
//
|
2023-05-18 22:05:18 +03:00
|
|
|
// distTestAdjust works with dist test names expressed in the Go 1.20 format.
|
|
|
|
// See ShouldRunDistTest for details.
|
|
|
|
//
|
2020-04-09 23:24:30 +03:00
|
|
|
distTestAdjust func(run bool, distTest string, isNormalTry bool) bool
|
2017-12-07 03:40:40 +03:00
|
|
|
|
cmd/coordinator, dashboard: remove some trybots, shard others wider
I'm aiming to have trybot runs finish in under 5 minutes.
This CL removes openbsd-386-gce58 and freebsd-386-gce101 from the trybot set.
openbsd-386-gce58 is the slowest builder. It has an average speed of
722 seconds (and 95 percentile of 923 seconds) over the past week, and
that's sharded over 4 machines. Too slow. It's not worth the resources
to keep it as a trybot. It hasn't caught any interesting bugs. This
builder will still run, but not as a pre-submit trybot.
freebsd-386-gce101 is not slow, but we're removing it to shift its
resources to shard other builders wider.
The coordinator now supports varying the build sharding width based on
whether a build is for a trybot or not. This CL defines separate
numbers for each, sharding builds wider as needed for some trybots.
freebsd-amd64-gce101 goes from 4 to 5 machines in try runs, and down
to 3 when not in try runs.
linux-amd64-race gets one more machine during try runs, and one fewer
in regular runs.
linux-arm goes from 7 machines always, to 3 or 8, depending on whether
it's a try run.
openbsd-amd64-58 goes from 4 to 3 or 6.
windows-amd64-gce goes from 4 to 2 or 6.
windows-amd64-race goes from 4 to 2 or 6.
darwin-amd64-10_11 goes from 3 to 3 or 4.
I'll see how these do over the next few days and readjust as needed.
Also in this CL: fix the constants for the expected duration of
make.bash, which impact when we schedule the creation of test sharding
helper buildlets. We were creating them too early before, wasting
resources.
Change-Id: I38a9b24841e196f1eb668de058c49af8c1d1c64f
Reviewed-on: https://go-review.googlesource.com/29116
Reviewed-by: Quentin Smith <quentin@golang.org>
2016-09-14 01:45:48 +03:00
|
|
|
// numTestHelpers is the number of _additional_ buildlets
|
|
|
|
// past the first one to help out with sharded tests.
|
2020-11-06 15:55:36 +03:00
|
|
|
// For TryBots and SlowBots, the numTryHelpers value is used,
|
|
|
|
// unless it's zero, in which case numTestHelpers is used.
|
cmd/coordinator, dashboard: remove some trybots, shard others wider
I'm aiming to have trybot runs finish in under 5 minutes.
This CL removes openbsd-386-gce58 and freebsd-386-gce101 from the trybot set.
openbsd-386-gce58 is the slowest builder. It has an average speed of
722 seconds (and 95 percentile of 923 seconds) over the past week, and
that's sharded over 4 machines. Too slow. It's not worth the resources
to keep it as a trybot. It hasn't caught any interesting bugs. This
builder will still run, but not as a pre-submit trybot.
freebsd-386-gce101 is not slow, but we're removing it to shift its
resources to shard other builders wider.
The coordinator now supports varying the build sharding width based on
whether a build is for a trybot or not. This CL defines separate
numbers for each, sharding builds wider as needed for some trybots.
freebsd-amd64-gce101 goes from 4 to 5 machines in try runs, and down
to 3 when not in try runs.
linux-amd64-race gets one more machine during try runs, and one fewer
in regular runs.
linux-arm goes from 7 machines always, to 3 or 8, depending on whether
it's a try run.
openbsd-amd64-58 goes from 4 to 3 or 6.
windows-amd64-gce goes from 4 to 2 or 6.
windows-amd64-race goes from 4 to 2 or 6.
darwin-amd64-10_11 goes from 3 to 3 or 4.
I'll see how these do over the next few days and readjust as needed.
Also in this CL: fix the constants for the expected duration of
make.bash, which impact when we schedule the creation of test sharding
helper buildlets. We were creating them too early before, wasting
resources.
Change-Id: I38a9b24841e196f1eb668de058c49af8c1d1c64f
Reviewed-on: https://go-review.googlesource.com/29116
Reviewed-by: Quentin Smith <quentin@golang.org>
2016-09-14 01:45:48 +03:00
|
|
|
numTestHelpers int
|
2020-11-06 15:55:36 +03:00
|
|
|
numTryTestHelpers int // For TryBots/SlowBots. If 0, numTestHelpers is used.
|
2015-05-28 07:51:25 +03:00
|
|
|
|
2022-12-20 20:19:33 +03:00
|
|
|
env []string // extra environment ("key=value") pairs
|
|
|
|
makeScriptArgs []string // extra args to pass to the make.bash-equivalent script
|
|
|
|
allScriptArgs []string // extra args to pass to the all.bash-equivalent script
|
2019-02-14 05:18:06 +03:00
|
|
|
|
dashboard,cmd/coordinator: unify and simplify GOPROXY setting behavior
The existing behavior for setting GOPROXY is rather hard to follow, and
doesn't work correctly in many cases. For example, longtest on a reverse
builder gets the GKE proxy. Before CL 479837 there were no longtest
builders outside of GCE, so this case was never covered. Fixing this is
the motivation of this CL.
They way configuration works today is:
1. buildstatus.go unconditionally sets GOPROXY to the GKE proxy [1].
2. st.conf.ModuleEnv potentially overrides GOPROXY with a more
reasonable setting, with a bunch of complex conditions.
Unify and simplify this process by moving it into buildstatus.go, where
their is now a strict ordering of possible GOPROXY values. Notable
changes:
* The GKE proxy is never used outside of GCE.
* There is a consistent default/fallback of proxy.golang.org.
I initially tried to split this into two CLs: one unifying the
implementation and the next changing the behavior, but the old behavior
is so mind-boggling that the first CL doesn't really make much sense.
The annoying part of this CL is that tests move from dashboard to
cmd/coordinator, requiring us to export additional fields so
cmd/coordinator tests can configure the builders.
The test cases themselves are unchanged except for the addition of a
non-GCE longtest builder case.
[1] Except in runSubrepoTests, which avoids doing so for reverse
builders. This was a workaround for private proxy builders in CL 275412,
but wasn't extended to other callers because only subrepo tests were
seeing a regression. More strangeness.
For golang/go#35678.
Change-Id: I6090c8c5e91ce6be9bfc07c16f36ed339c9d27ae
Reviewed-on: https://go-review.googlesource.com/c/build/+/482339
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Run-TryBot: Michael Pratt <mpratt@google.com>
2023-04-05 00:50:46 +03:00
|
|
|
TestHostConf *HostConfig // override HostConfig for testing, at least for now
|
2021-12-09 22:12:12 +03:00
|
|
|
|
|
|
|
// isRestricted marks if a builder should be restricted to a subset of users.
|
|
|
|
isRestricted bool
|
2015-01-15 23:46:22 +03:00
|
|
|
}
|
|
|
|
|
2019-03-07 20:44:41 +03:00
|
|
|
// Env returns the environment variables this builder should run with.
|
2015-08-04 05:19:02 +03:00
|
|
|
func (c *BuildConfig) Env() []string {
|
2016-05-06 21:55:26 +03:00
|
|
|
env := []string{"GO_BUILDER_NAME=" + c.Name}
|
|
|
|
if c.FlakyNet {
|
|
|
|
env = append(env, "GO_BUILDER_FLAKY_NET=1")
|
|
|
|
}
|
2020-05-13 21:30:25 +03:00
|
|
|
if c.IsLongTest() {
|
|
|
|
// Set a private hook in cmd/dist to run main Go repository tests
|
2022-07-22 19:04:15 +03:00
|
|
|
// without the default -short flag. See go.dev/issue/12508.
|
2020-05-13 21:30:25 +03:00
|
|
|
env = append(env, "GO_TEST_SHORT=0")
|
|
|
|
}
|
2019-10-30 06:59:13 +03:00
|
|
|
env = append(env, c.HostConfig().env...)
|
2016-05-06 21:55:26 +03:00
|
|
|
return append(env, c.env...)
|
2015-08-04 05:19:02 +03:00
|
|
|
}
|
2015-01-22 02:15:48 +03:00
|
|
|
|
2019-10-30 06:59:13 +03:00
|
|
|
func (c *BuildConfig) IsReverse() bool { return c.HostConfig().IsReverse }
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
|
dashboard,cmd/coordinator: unify and simplify GOPROXY setting behavior
The existing behavior for setting GOPROXY is rather hard to follow, and
doesn't work correctly in many cases. For example, longtest on a reverse
builder gets the GKE proxy. Before CL 479837 there were no longtest
builders outside of GCE, so this case was never covered. Fixing this is
the motivation of this CL.
They way configuration works today is:
1. buildstatus.go unconditionally sets GOPROXY to the GKE proxy [1].
2. st.conf.ModuleEnv potentially overrides GOPROXY with a more
reasonable setting, with a bunch of complex conditions.
Unify and simplify this process by moving it into buildstatus.go, where
their is now a strict ordering of possible GOPROXY values. Notable
changes:
* The GKE proxy is never used outside of GCE.
* There is a consistent default/fallback of proxy.golang.org.
I initially tried to split this into two CLs: one unifying the
implementation and the next changing the behavior, but the old behavior
is so mind-boggling that the first CL doesn't really make much sense.
The annoying part of this CL is that tests move from dashboard to
cmd/coordinator, requiring us to export additional fields so
cmd/coordinator tests can configure the builders.
The test cases themselves are unchanged except for the addition of a
non-GCE longtest builder case.
[1] Except in runSubrepoTests, which avoids doing so for reverse
builders. This was a workaround for private proxy builders in CL 275412,
but wasn't extended to other callers because only subrepo tests were
seeing a regression. More strangeness.
For golang/go#35678.
Change-Id: I6090c8c5e91ce6be9bfc07c16f36ed339c9d27ae
Reviewed-on: https://go-review.googlesource.com/c/build/+/482339
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Run-TryBot: Michael Pratt <mpratt@google.com>
2023-04-05 00:50:46 +03:00
|
|
|
func (c *BuildConfig) IsGCE() bool { return !c.HostConfig().IsReverse && !c.HostConfig().IsEC2 }
|
|
|
|
|
2019-10-30 06:59:13 +03:00
|
|
|
func (c *BuildConfig) IsContainer() bool { return c.HostConfig().IsContainer() }
|
2018-05-05 19:36:05 +03:00
|
|
|
func (c *HostConfig) IsContainer() bool { return c.ContainerImage != "" }
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
|
2019-10-30 06:59:13 +03:00
|
|
|
func (c *BuildConfig) IsVM() bool { return c.HostConfig().IsVM() }
|
2020-08-18 20:32:05 +03:00
|
|
|
|
|
|
|
// IsVM reports whether the instance running the job is ultimately a VM. Hosts where
|
|
|
|
// a VM is used only to initiate a container are considered a container, not a VM.
|
|
|
|
// EC2 instances may be configured to run in containers that are running
|
|
|
|
// on custom AMIs.
|
|
|
|
func (c *HostConfig) IsVM() bool {
|
dashboard,cmd/coordinator: unify and simplify GOPROXY setting behavior
The existing behavior for setting GOPROXY is rather hard to follow, and
doesn't work correctly in many cases. For example, longtest on a reverse
builder gets the GKE proxy. Before CL 479837 there were no longtest
builders outside of GCE, so this case was never covered. Fixing this is
the motivation of this CL.
They way configuration works today is:
1. buildstatus.go unconditionally sets GOPROXY to the GKE proxy [1].
2. st.conf.ModuleEnv potentially overrides GOPROXY with a more
reasonable setting, with a bunch of complex conditions.
Unify and simplify this process by moving it into buildstatus.go, where
their is now a strict ordering of possible GOPROXY values. Notable
changes:
* The GKE proxy is never used outside of GCE.
* There is a consistent default/fallback of proxy.golang.org.
I initially tried to split this into two CLs: one unifying the
implementation and the next changing the behavior, but the old behavior
is so mind-boggling that the first CL doesn't really make much sense.
The annoying part of this CL is that tests move from dashboard to
cmd/coordinator, requiring us to export additional fields so
cmd/coordinator tests can configure the builders.
The test cases themselves are unchanged except for the addition of a
non-GCE longtest builder case.
[1] Except in runSubrepoTests, which avoids doing so for reverse
builders. This was a workaround for private proxy builders in CL 275412,
but wasn't extended to other callers because only subrepo tests were
seeing a regression. More strangeness.
For golang/go#35678.
Change-Id: I6090c8c5e91ce6be9bfc07c16f36ed339c9d27ae
Reviewed-on: https://go-review.googlesource.com/c/build/+/482339
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Run-TryBot: Michael Pratt <mpratt@google.com>
2023-04-05 00:50:46 +03:00
|
|
|
if c.IsEC2 {
|
2020-08-18 20:32:05 +03:00
|
|
|
return c.VMImage != "" && c.ContainerImage == ""
|
|
|
|
}
|
|
|
|
return c.VMImage != ""
|
|
|
|
}
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
|
2015-01-16 03:29:16 +03:00
|
|
|
func (c *BuildConfig) GOOS() string { return c.Name[:strings.Index(c.Name, "-")] }
|
|
|
|
|
|
|
|
func (c *BuildConfig) GOARCH() string {
|
|
|
|
arch := c.Name[strings.Index(c.Name, "-")+1:]
|
|
|
|
i := strings.Index(arch, "-")
|
|
|
|
if i == -1 {
|
|
|
|
return arch
|
|
|
|
}
|
|
|
|
return arch[:i]
|
|
|
|
}
|
|
|
|
|
2019-10-16 09:02:29 +03:00
|
|
|
// MatchesSlowBotTerm reports whether some provided term from a
|
|
|
|
// TRY=... comment on a Run-TryBot+1 vote on Gerrit should match this
|
|
|
|
// build config.
|
|
|
|
func (c *BuildConfig) MatchesSlowBotTerm(term string) bool {
|
|
|
|
return term != "" && (term == c.Name || slowBotAliases[term] == c.Name)
|
|
|
|
}
|
|
|
|
|
2015-05-28 07:51:25 +03:00
|
|
|
// 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 (c *BuildConfig) FilePathJoin(x ...string) string {
|
|
|
|
if c.GOOS() == "windows" {
|
|
|
|
return strings.Join(x, "\\")
|
|
|
|
}
|
|
|
|
return strings.Join(x, "/")
|
|
|
|
}
|
|
|
|
|
2021-12-09 22:12:12 +03:00
|
|
|
func (c *BuildConfig) IsRestricted() bool {
|
|
|
|
return c.isRestricted
|
|
|
|
}
|
|
|
|
|
2019-02-14 05:18:06 +03:00
|
|
|
// DistTestsExecTimeout returns how long the coordinator should wait
|
|
|
|
// for a cmd/dist test execution to run the provided dist test names.
|
2023-05-18 22:05:18 +03:00
|
|
|
//
|
|
|
|
// The dist test names are expressed in the Go 1.20 format, even for
|
|
|
|
// newer Go versions. See go120DistTestNames.
|
2019-02-14 05:18:06 +03:00
|
|
|
func (c *BuildConfig) DistTestsExecTimeout(distTests []string) time.Duration {
|
|
|
|
// TODO: consider using distTests? We never did before, but
|
|
|
|
// now we have the TestStats in the coordinator. Pass in a
|
|
|
|
// *buildstats.TestStats and use historical data times some
|
|
|
|
// fudge factor? For now just use the old 20 minute limit
|
|
|
|
// we've used since 2014, but scale it by the
|
|
|
|
// GO_TEST_TIMEOUT_SCALE for the super slow builders which
|
|
|
|
// struggle with, say, the cgo tests. (which should be broken
|
|
|
|
// up into separate dist tests or shards, like the test/ dir
|
|
|
|
// was)
|
|
|
|
d := 20 * time.Minute
|
2022-11-29 02:50:15 +03:00
|
|
|
d *= time.Duration(c.GoTestTimeoutScale())
|
2019-02-14 05:18:06 +03:00
|
|
|
return d
|
|
|
|
}
|
|
|
|
|
2022-11-29 02:50:15 +03:00
|
|
|
// GoTestTimeoutScale returns this builder's GO_TEST_TIMEOUT_SCALE value, or 1.
|
|
|
|
func (c *BuildConfig) GoTestTimeoutScale() int {
|
2019-02-14 05:18:06 +03:00
|
|
|
const pfx = "GO_TEST_TIMEOUT_SCALE="
|
2019-10-30 06:59:13 +03:00
|
|
|
for _, env := range [][]string{c.env, c.HostConfig().env} {
|
2019-02-14 05:18:06 +03:00
|
|
|
for _, kv := range env {
|
|
|
|
if strings.HasPrefix(kv, pfx) {
|
|
|
|
if n, err := strconv.Atoi(kv[len(pfx):]); err == nil && n > 0 {
|
|
|
|
return n
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
|
2019-10-30 06:59:13 +03:00
|
|
|
// HostConfig returns the host configuration of c.
|
|
|
|
func (c *BuildConfig) HostConfig() *HostConfig {
|
dashboard,cmd/coordinator: unify and simplify GOPROXY setting behavior
The existing behavior for setting GOPROXY is rather hard to follow, and
doesn't work correctly in many cases. For example, longtest on a reverse
builder gets the GKE proxy. Before CL 479837 there were no longtest
builders outside of GCE, so this case was never covered. Fixing this is
the motivation of this CL.
They way configuration works today is:
1. buildstatus.go unconditionally sets GOPROXY to the GKE proxy [1].
2. st.conf.ModuleEnv potentially overrides GOPROXY with a more
reasonable setting, with a bunch of complex conditions.
Unify and simplify this process by moving it into buildstatus.go, where
their is now a strict ordering of possible GOPROXY values. Notable
changes:
* The GKE proxy is never used outside of GCE.
* There is a consistent default/fallback of proxy.golang.org.
I initially tried to split this into two CLs: one unifying the
implementation and the next changing the behavior, but the old behavior
is so mind-boggling that the first CL doesn't really make much sense.
The annoying part of this CL is that tests move from dashboard to
cmd/coordinator, requiring us to export additional fields so
cmd/coordinator tests can configure the builders.
The test cases themselves are unchanged except for the addition of a
non-GCE longtest builder case.
[1] Except in runSubrepoTests, which avoids doing so for reverse
builders. This was a workaround for private proxy builders in CL 275412,
but wasn't extended to other callers because only subrepo tests were
seeing a regression. More strangeness.
For golang/go#35678.
Change-Id: I6090c8c5e91ce6be9bfc07c16f36ed339c9d27ae
Reviewed-on: https://go-review.googlesource.com/c/build/+/482339
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Run-TryBot: Michael Pratt <mpratt@google.com>
2023-04-05 00:50:46 +03:00
|
|
|
if c.TestHostConf != nil {
|
|
|
|
return c.TestHostConf
|
2019-02-14 05:18:06 +03:00
|
|
|
}
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
if c, ok := Hosts[c.HostType]; ok {
|
|
|
|
return c
|
|
|
|
}
|
|
|
|
panic(fmt.Sprintf("missing buildlet config for buildlet %q", c.Name))
|
|
|
|
}
|
|
|
|
|
2019-03-26 20:45:16 +03:00
|
|
|
// GoBootstrapURL returns the URL of a built Go 1.4+ tar.gz for the
|
|
|
|
// build configuration type c, or empty string if there isn't one.
|
2016-03-22 01:05:52 +03:00
|
|
|
func (c *BuildConfig) GoBootstrapURL(e *buildenv.Environment) string {
|
dashboard: update builders to Go 1.17.13 for bootstrap
Compute GoBootstrapURL for all hosts.
This removes another obviously computable field,
assuming the bootstrap toolchains have all been uploaded
with consistent names (as genbootstrap -upload now does).
It also makes all builders work the same: they all start by
downloading the bootstrap toolchain, instead of having some
download and others use a toolchain installed into the boot image.
The builders with pre-installed toolchains will continue to have
those toolchains, but now nothing will use them, because the
coordinator or gomote will see the GoBootstrapURL result
and push an updated toolchain to $workdir/go1.4.
As part of all this simplification, switch to Go 1.17.13 as the
bootstrap toolchain, for golang/go#44505. (And also because
we have no Go 1.4 for some of these platforms.)
Updating the bootstrap toolchain again in a couple years will
now be easy: run genbootstrap -upload '*' and then change
GoBootstrap here.
For golang/go#44505.
(Won't be fixed until coordinator is redeployed.)
Succeeded running all.bash/bat/rc using updated debugnewvm:
android-386-emu
android-amd64-emu
dragonfly-amd64-622
freebsd-386-12_3
freebsd-386-13_0
freebsd-amd64-13_0
freebsd-amd64-race
js-wasm
linux-386
linux-386-buster
linux-386-clang
linux-386-longtest
linux-386-sid
linux-386-softfloat
linux-386-stretch
linux-amd64
linux-amd64-alpine
linux-amd64-boringcrypto
linux-amd64-bullseye
linux-amd64-buster
linux-amd64-clang
linux-amd64-fedora
linux-amd64-goamd64v3
linux-amd64-longtest
linux-amd64-nocgo
linux-amd64-noopt
linux-amd64-nounified
linux-amd64-perf
linux-amd64-race
linux-amd64-racecompile
linux-amd64-sid
linux-amd64-ssacheck
linux-amd64-staticlockranking
linux-amd64-stretch
linux-amd64-unified
linux-amd64-vmx
netbsd-386-9_0
netbsd-amd64-9_0
openbsd-386-68
openbsd-386-70
openbsd-amd64-68
openbsd-amd64-70
windows-386-2008
windows-386-2012
windows-amd64-2008
windows-amd64-2012
windows-amd64-2016
windows-amd64-longtest
windows-amd64-newcc-race
windows-amd64-race
Succeeded running make.bash using updated debugnewvm:
linux-s390x-crosscompile
Succeeded running make.bash using updated gomote (real time for put14 shown):
aix-ppc64 (5.2s)
darwin-amd64-10_14 (3.4s)
darwin-amd64-10_15 (3.5s)
darwin-amd64-11_0 (4.5s)
darwin-amd64-12_0 (4.5s)
darwin-amd64-nocgo (4.4s)
darwin-amd64-race (4.2s)
darwin-arm64-11 (1.7s)
darwin-arm64-12 (1.8s)
freebsd-arm64-dmgk (4.0s)
freebsd-arm-paulzhol (35.1s)
illumos-amd64 (5.9s)
linux-amd64-wsl (126.7s)
linux-arm64-aws (2.8s)
linux-arm-aws (3.8s)
linux-mips64le-rtrk (20.4s)
linux-mips64-rtrk (16.0s)
linux-mipsle-rtrk (16.3s)
linux-mips-rtrk (16.3s)
linux-ppc64-buildlet (4.7s)
linux-ppc64le-buildlet (3.6s)
linux-ppc64le-power9osu (5.6s)
linux-riscv64-unmatched (38.2s)
linux-s390x-ibm (4.4s)
netbsd-arm64-bsiegert (35.0s)
openbsd-arm64-jsing (64.9s)
openbsd-mips64-jsing (154.2s)
plan9-386-0intro (8.7s)
plan9-arm (18.2s)
windows-arm64-10 (7.1s)
windows-arm64-11 (4.1s)
Put14 failed using gomote:
android-arm64-corellium (403 Forbidden in fetch)
android-arm-corellium (403 Forbidden in fetch)
ios-arm64-corellium (403 Forbidden in fetch)
- fails build, kept old GOROOT_BOOTSTRAP
linux-loong64-3a5000 (proxyconnect tcp: dial tcp 117.50.175.110:7890: i/o timeout)
- falls back to preinstalled Go 1.18, kept old GOROOT_BOOTSTRAP
Builds fine, failing tests but not on dashboard anyway:
freebsd-386-11_4
freebsd-amd64-11_4
linux-amd64-androidemu
plan9-386
Failed in same way as current builders:
openbsd-386-70-n2d
windows-386-2008-newcc
windows-386-2012-newcc
windows-amd64-2008-newcc
windows-amd64-2012-newcc
windows-amd64-2016-newcc
windows-amd64-longtest-newcc
Can't connect with gomote, so untested:
linux-riscv64-jsing (but linux-riscv64-unmatched works)
netbsd-arm-bsiegert
openbsd-arm-jsing
plan9-amd64-0intro
solaris-amd64-oraclerel (but illumos-amd64 works)
Change-Id: If4354a8681dbac28e1d34897b6356b881592c241
Reviewed-on: https://go-review.googlesource.com/c/build/+/419993
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
2022-07-29 03:55:40 +03:00
|
|
|
hc := c.HostConfig()
|
|
|
|
if hc.GoBootstrap == "none" {
|
|
|
|
return ""
|
|
|
|
}
|
2023-08-19 03:28:45 +03:00
|
|
|
if x, ok := version.Go1PointX(hc.GoBootstrap); ok && x < 21 {
|
|
|
|
return "https://storage.googleapis.com/" + e.BuildletBucket +
|
|
|
|
"/gobootstrap-" + hc.HostArch + "-" + hc.GoBootstrap + ".tar.gz"
|
|
|
|
}
|
|
|
|
if c.GOOS() == "windows" {
|
|
|
|
// Can't use Windows downloads from go.dev/dl, they're in .zip
|
|
|
|
// format but the buildlet API accepts only the .tar.gz format.
|
|
|
|
//
|
|
|
|
// Since all this will be replaced by LUCI fairly soon,
|
|
|
|
// keep using the bootstrap bucket for Windows for now.
|
|
|
|
return "https://storage.googleapis.com/" + e.BuildletBucket +
|
|
|
|
"/gobootstrap-" + hc.HostArch + "-" + hc.GoBootstrap + ".tar.gz"
|
|
|
|
}
|
|
|
|
return "https://go.dev/dl/" + hc.GoBootstrap + "." + hc.HostArch + ".tar.gz"
|
2016-03-22 01:05:52 +03:00
|
|
|
}
|
|
|
|
|
2015-01-28 01:22:21 +03:00
|
|
|
// BuildletBinaryURL returns the public URL of this builder's buildlet.
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
func (c *HostConfig) BuildletBinaryURL(e *buildenv.Environment) string {
|
2022-07-26 19:29:51 +03:00
|
|
|
return "https://storage.googleapis.com/" + e.BuildletBucket + "/buildlet." + c.HostArch
|
2015-01-28 01:22:21 +03:00
|
|
|
}
|
|
|
|
|
2022-11-10 01:12:41 +03:00
|
|
|
// IsRace reports whether this is a race builder.
|
|
|
|
// A race builder runs tests without the -short flag.
|
|
|
|
//
|
|
|
|
// A builder is considered to be a race builder
|
|
|
|
// if and only if it one of the components of the builder
|
|
|
|
// name is "race" (components are delimited by "-").
|
2015-06-17 18:22:14 +03:00
|
|
|
func (c *BuildConfig) IsRace() bool {
|
2022-11-10 01:12:41 +03:00
|
|
|
for _, s := range strings.Split(c.Name, "-") {
|
|
|
|
if s == "race" {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false
|
2015-06-17 18:22:14 +03:00
|
|
|
}
|
|
|
|
|
2020-05-13 21:30:25 +03:00
|
|
|
// IsLongTest reports whether this is a longtest builder.
|
|
|
|
// A longtest builder runs tests without the -short flag.
|
|
|
|
//
|
|
|
|
// A builder is considered to be a longtest builder
|
2022-11-10 01:12:41 +03:00
|
|
|
// if and only if it one of the components of the builder
|
|
|
|
// name is "longtest" (components are delimited by "-").
|
2019-03-11 21:49:56 +03:00
|
|
|
func (c *BuildConfig) IsLongTest() bool {
|
2022-11-10 01:12:41 +03:00
|
|
|
for _, s := range strings.Split(c.Name, "-") {
|
|
|
|
if s == "longtest" {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false
|
2019-03-11 21:49:56 +03:00
|
|
|
}
|
|
|
|
|
2023-02-02 21:54:40 +03:00
|
|
|
// TargetArch returns the build target architecture.
|
|
|
|
//
|
|
|
|
// It starts from the host arch, then applies any environment
|
|
|
|
// variables that would override either GOOS, GOARCH, or GOARM.
|
|
|
|
func (c *BuildConfig) TargetArch() string {
|
|
|
|
var goos, goarch, goarm string
|
|
|
|
hostArch := c.HostConfig().HostArch
|
|
|
|
h := strings.Split(hostArch, "-")
|
|
|
|
switch len(h) {
|
|
|
|
case 3:
|
|
|
|
goarm = h[2]
|
|
|
|
fallthrough
|
|
|
|
case 2:
|
|
|
|
goos = h[0]
|
|
|
|
goarch = h[1]
|
|
|
|
default:
|
|
|
|
panic("bad host arch " + hostArch)
|
|
|
|
}
|
|
|
|
for _, v := range c.Env() {
|
|
|
|
if strings.HasPrefix(v, "GOOS=") {
|
|
|
|
goos = v[len("GOOS="):]
|
|
|
|
}
|
|
|
|
if strings.HasPrefix(v, "GOARCH=") {
|
|
|
|
goarch = v[len("GOARCH="):]
|
|
|
|
}
|
|
|
|
if strings.HasPrefix(v, "GOARM=") {
|
|
|
|
goarm = v[len("GOARM="):]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if goarch == "arm" && goarm == "" {
|
|
|
|
goarm = "7"
|
|
|
|
}
|
|
|
|
targetArch := goos + "-" + goarch
|
|
|
|
if goarm != "" {
|
|
|
|
targetArch += "-" + goarm
|
|
|
|
}
|
|
|
|
return targetArch
|
|
|
|
}
|
|
|
|
|
|
|
|
// IsCrossCompileOnly indicates that this builder configuration
|
|
|
|
// cross-compiles for some platform other than the host, and that
|
|
|
|
// it does not run any tests.
|
|
|
|
//
|
|
|
|
// TODO(#58297): Remove this and make c.CompileOnly sufficient.
|
|
|
|
func (c *BuildConfig) IsCrossCompileOnly() bool {
|
|
|
|
return c.TargetArch() != c.HostConfig().HostArch && c.CompileOnly
|
|
|
|
}
|
|
|
|
|
2019-03-13 07:44:17 +03:00
|
|
|
// OutboundNetworkAllowed reports whether this builder should be
|
|
|
|
// allowed to make outbound network requests. This is only enforced
|
|
|
|
// on some builders. (Currently most Linux ones)
|
|
|
|
func (c *BuildConfig) OutboundNetworkAllowed() bool {
|
2019-05-10 22:28:40 +03:00
|
|
|
return c.IsLongTest()
|
2019-03-13 07:44:17 +03:00
|
|
|
}
|
|
|
|
|
2017-04-22 02:41:12 +03:00
|
|
|
func (c *BuildConfig) GoInstallRacePackages() []string {
|
|
|
|
if c.InstallRacePackages != nil {
|
|
|
|
return append([]string(nil), c.InstallRacePackages...)
|
|
|
|
}
|
|
|
|
if c.IsRace() {
|
|
|
|
return []string{"std"}
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2015-01-16 20:54:03 +03:00
|
|
|
// 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 (c *BuildConfig) AllScript() string {
|
2017-04-13 00:37:13 +03:00
|
|
|
if c.Name == "" {
|
|
|
|
panic("bogus BuildConfig")
|
|
|
|
}
|
2015-06-17 18:22:14 +03:00
|
|
|
if c.IsRace() {
|
2015-01-22 02:15:48 +03:00
|
|
|
if strings.HasPrefix(c.Name, "windows-") {
|
|
|
|
return "src/race.bat"
|
|
|
|
}
|
|
|
|
return "src/race.bash"
|
|
|
|
}
|
2015-01-16 20:54:03 +03:00
|
|
|
if strings.HasPrefix(c.Name, "windows-") {
|
|
|
|
return "src/all.bat"
|
|
|
|
}
|
|
|
|
if strings.HasPrefix(c.Name, "plan9-") {
|
|
|
|
return "src/all.rc"
|
|
|
|
}
|
2023-02-02 21:54:40 +03:00
|
|
|
if c.IsCrossCompileOnly() {
|
2023-02-02 21:22:07 +03:00
|
|
|
return "src/make.bash"
|
2015-04-30 00:44:46 +03:00
|
|
|
}
|
2015-01-16 20:54:03 +03:00
|
|
|
return "src/all.bash"
|
|
|
|
}
|
|
|
|
|
2019-03-07 20:44:41 +03:00
|
|
|
func (c *BuildConfig) IsTryOnly() bool { return c.tryOnly }
|
|
|
|
|
2022-04-28 17:24:01 +03:00
|
|
|
// PrivateGoProxy for builder has it's own Go proxy instead of proxy.golang.org
|
|
|
|
func (c *BuildConfig) PrivateGoProxy() bool { return c.privateGoProxy }
|
|
|
|
|
2019-03-26 20:45:16 +03:00
|
|
|
// BuildsRepoPostSubmit reports whether the build configuration type c
|
2019-03-07 20:44:41 +03:00
|
|
|
// should build the given repo ("go", "net", etc) and branch
|
|
|
|
// ("master", "release-branch.go1.12") as a post-submit build
|
|
|
|
// that shows up on https://build.golang.org/.
|
|
|
|
func (c *BuildConfig) BuildsRepoPostSubmit(repo, branch, goBranch string) bool {
|
|
|
|
if c.tryOnly {
|
2015-06-11 20:01:24 +03:00
|
|
|
return false
|
|
|
|
}
|
2019-03-07 20:44:41 +03:00
|
|
|
return c.buildsRepoAtAll(repo, branch, goBranch)
|
2015-06-05 02:45:17 +03:00
|
|
|
}
|
|
|
|
|
2019-03-07 20:44:41 +03:00
|
|
|
// BuildsRepoTryBot reports whether the build configuration type c
|
|
|
|
// should build the given repo ("go", "net", etc) and branch
|
|
|
|
// ("master", "release-branch.go1.12") as a trybot.
|
|
|
|
func (c *BuildConfig) BuildsRepoTryBot(repo, branch, goBranch string) bool {
|
|
|
|
return c.tryBot != nil && c.tryBot(repo, branch, goBranch) && c.buildsRepoAtAll(repo, branch, goBranch)
|
2018-10-26 22:21:58 +03:00
|
|
|
}
|
|
|
|
|
2019-03-19 20:17:23 +03:00
|
|
|
// ShouldRunDistTest reports whether the named cmd/dist test should be
|
2023-05-18 22:05:18 +03:00
|
|
|
// run for this build config. The dist test name is expressed in the
|
|
|
|
// Go 1.20 format, even for newer Go versions. See go120DistTestNames.
|
|
|
|
//
|
|
|
|
// The isNormalTry parameter specifies whether this is for a normal
|
|
|
|
// TryBot build. It's false for SlowBot and post-submit builds.
|
2019-03-19 20:17:23 +03:00
|
|
|
//
|
2020-04-09 23:24:30 +03:00
|
|
|
// In general, this returns true. When in normal trybot mode,
|
|
|
|
// some slow portable tests are only run on the fastest builder.
|
2020-04-09 19:47:03 +03:00
|
|
|
//
|
2023-05-18 22:05:18 +03:00
|
|
|
// It's possible for individual builders to adjust this policy for their needs,
|
|
|
|
// though it is preferable to handle that by adjusting test skips in the tests
|
|
|
|
// instead of here. That has the advantage of being easier to maintain over time
|
|
|
|
// since both the test and its skips would be in one repository rather than two,
|
|
|
|
// and having effect when tests are run locally by developers.
|
2020-04-09 23:24:30 +03:00
|
|
|
func (c *BuildConfig) ShouldRunDistTest(distTest string, isNormalTry bool) bool {
|
2020-04-09 19:47:03 +03:00
|
|
|
run := true
|
|
|
|
|
|
|
|
// This section implements the default cmd/dist test policy.
|
|
|
|
// Any changes here will affect test coverage on all builders.
|
2020-04-09 23:24:30 +03:00
|
|
|
if isNormalTry {
|
2020-04-09 19:47:03 +03:00
|
|
|
slowPortableTest := distTest == "api" // Whether a test is slow and has the same behavior everywhere.
|
|
|
|
fastestBuilder := c.Name == "linux-amd64"
|
|
|
|
if slowPortableTest && !fastestBuilder {
|
|
|
|
// Don't run the test on this builder.
|
|
|
|
run = false
|
|
|
|
}
|
2019-03-19 20:17:23 +03:00
|
|
|
}
|
2020-04-09 19:47:03 +03:00
|
|
|
|
2023-05-18 22:05:18 +03:00
|
|
|
// Individual builders have historically sometimes adjusted the cmd/dist test policy.
|
|
|
|
// Over time these can migrate to better ways of doing platform-based or speed-based test skips.
|
2020-04-09 19:47:03 +03:00
|
|
|
if c.distTestAdjust != nil {
|
2020-04-09 23:24:30 +03:00
|
|
|
run = c.distTestAdjust(run, distTest, isNormalTry)
|
2019-03-19 20:17:23 +03:00
|
|
|
}
|
2020-04-09 19:47:03 +03:00
|
|
|
|
|
|
|
return run
|
2019-03-19 20:17:23 +03:00
|
|
|
}
|
|
|
|
|
2019-03-07 20:44:41 +03:00
|
|
|
// buildsRepoAtAll reports whether we should do builds of the provided
|
|
|
|
// repo ("go", "sys", "net", etc). This applies to both post-submit
|
|
|
|
// and trybot builds. Use BuildsRepoPostSubmit for only post-submit
|
|
|
|
// or BuildsRepoTryBot for trybots.
|
2019-03-11 21:49:56 +03:00
|
|
|
//
|
|
|
|
// The branch is the branch of repo ("master",
|
|
|
|
// "release-branch.go1.12", etc); it is required. The goBranch is the
|
|
|
|
// branch of Go itself. It's required if repo != "go". When repo ==
|
|
|
|
// "go", the goBranch defaults to the value of branch.
|
2019-03-07 20:44:41 +03:00
|
|
|
func (c *BuildConfig) buildsRepoAtAll(repo, branch, goBranch string) bool {
|
2019-03-11 21:49:56 +03:00
|
|
|
if goBranch == "" {
|
|
|
|
if repo == "go" {
|
|
|
|
goBranch = branch
|
|
|
|
} else {
|
|
|
|
panic("missing goBranch")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if branch == "" {
|
|
|
|
panic("missing branch")
|
|
|
|
}
|
|
|
|
if repo == "" {
|
|
|
|
panic("missing repo")
|
|
|
|
}
|
2019-03-01 02:20:41 +03:00
|
|
|
// Don't build old branches.
|
|
|
|
const minGo1x = 11
|
2019-03-13 11:29:15 +03:00
|
|
|
for _, b := range []string{branch, goBranch} {
|
|
|
|
if bmaj, bmin, ok := version.ParseReleaseBranch(b); ok {
|
|
|
|
if bmaj != 1 || bmin < minGo1x {
|
|
|
|
return false
|
|
|
|
}
|
2022-08-11 21:12:53 +03:00
|
|
|
bmm := types.MajorMinor{Major: bmaj, Minor: bmin}
|
2019-03-13 11:29:15 +03:00
|
|
|
if bmm.Less(c.MinimumGoVersion) {
|
|
|
|
return false
|
|
|
|
}
|
2019-04-03 07:45:29 +03:00
|
|
|
if repo == "exp" {
|
|
|
|
// Don't test exp against release branches; it's experimental.
|
|
|
|
return false
|
|
|
|
}
|
2019-03-13 11:29:15 +03:00
|
|
|
}
|
2018-11-15 08:55:22 +03:00
|
|
|
}
|
2019-03-01 02:20:41 +03:00
|
|
|
|
2022-07-22 19:04:15 +03:00
|
|
|
// Build dev.boringcrypto branches only on linux/amd64 and windows/386 (see go.dev/issue/26791).
|
2019-03-07 20:44:41 +03:00
|
|
|
if repo == "go" && (branch == "dev.boringcrypto" || strings.HasPrefix(branch, "dev.boringcrypto.")) {
|
2022-11-23 17:32:27 +03:00
|
|
|
if c.Name != "linux-amd64" && !strings.HasPrefix(c.Name, "windows-386") {
|
2018-11-15 08:55:22 +03:00
|
|
|
return false
|
|
|
|
}
|
|
|
|
}
|
2019-03-07 20:44:41 +03:00
|
|
|
if p := c.buildsRepo; p != nil {
|
|
|
|
return p(repo, branch, goBranch)
|
|
|
|
}
|
2020-07-01 21:45:10 +03:00
|
|
|
return buildRepoByDefault(repo)
|
2019-04-05 08:26:05 +03:00
|
|
|
}
|
|
|
|
|
2020-07-01 21:45:10 +03:00
|
|
|
// buildRepoByDefault reports whether builders should do builds
|
|
|
|
// for the given repo ("go", "net", etc.) by default.
|
|
|
|
//
|
|
|
|
// It's used directly by BuildConfig.buildsRepoAtAll method for
|
|
|
|
// builders with a nil BuildConfig.buildsRepo value.
|
|
|
|
// It's also used by many builders that provide a custom build
|
|
|
|
// repo policy (a non-nil BuildConfig.buildsRepo value) as part
|
|
|
|
// of making the decision of whether to build a given repo.
|
|
|
|
//
|
|
|
|
// As a result, it effectively implements the default build repo policy.
|
|
|
|
// Any changes here will affect repo coverage of many builders.
|
|
|
|
func buildRepoByDefault(repo string) bool {
|
2019-03-14 23:35:32 +03:00
|
|
|
switch repo {
|
|
|
|
case "go":
|
2020-07-01 21:45:10 +03:00
|
|
|
// Build the main Go repository by default.
|
2019-03-14 23:35:32 +03:00
|
|
|
return true
|
2023-03-31 18:27:20 +03:00
|
|
|
case "build", "exp", "mobile", "pkgsite-metrics", "vulndb", "website":
|
2020-07-01 21:45:10 +03:00
|
|
|
// Builders need to explicitly opt-in to build these repos.
|
2019-03-11 07:20:46 +03:00
|
|
|
return false
|
2020-07-01 21:45:10 +03:00
|
|
|
default:
|
|
|
|
// Build all other golang.org/x repositories by default.
|
|
|
|
return true
|
2019-03-11 07:20:46 +03:00
|
|
|
}
|
2018-11-15 08:55:22 +03:00
|
|
|
}
|
|
|
|
|
2022-01-07 23:29:05 +03:00
|
|
|
var (
|
2023-03-31 18:27:20 +03:00
|
|
|
defaultPlusExp = defaultPlus("exp")
|
2024-02-14 23:10:33 +03:00
|
|
|
defaultPlusExpBuild = defaultPlus("exp", "build")
|
2022-01-07 23:29:05 +03:00
|
|
|
)
|
2019-04-05 08:26:05 +03:00
|
|
|
|
2023-03-31 18:27:20 +03:00
|
|
|
// linux-amd64 and linux-amd64-race build all the repos.
|
|
|
|
// Many team repos are disabled on other builders because
|
|
|
|
// we only run them on servers and don't need to test the
|
|
|
|
// many different architectures that Go supports (like ios).
|
|
|
|
func linuxAmd64Repos(repo, branch, goBranch string) bool {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
|
2022-01-07 23:29:05 +03:00
|
|
|
// defaultPlus returns a buildsRepo policy function that returns true for all
|
|
|
|
// all the repos listed, plus the default repos.
|
|
|
|
func defaultPlus(repos ...string) func(repo, branch, goBranch string) bool {
|
|
|
|
return func(repo, _, _ string) bool {
|
|
|
|
for _, r := range repos {
|
|
|
|
if r == repo {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return buildRepoByDefault(repo)
|
2019-12-07 08:14:28 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-05-21 07:02:38 +03:00
|
|
|
// AllScriptArgs returns the set of arguments that should be passed to the
|
2015-04-29 15:54:19 +03:00
|
|
|
// all.bash-equivalent script. Usually empty.
|
|
|
|
func (c *BuildConfig) AllScriptArgs() []string {
|
2015-06-05 04:25:50 +03:00
|
|
|
return append([]string(nil), c.allScriptArgs...)
|
2015-04-29 15:54:19 +03:00
|
|
|
}
|
|
|
|
|
2015-02-02 15:05:01 +03:00
|
|
|
// 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 (c *BuildConfig) MakeScript() string {
|
|
|
|
if strings.HasPrefix(c.Name, "windows-") {
|
|
|
|
return "src/make.bat"
|
|
|
|
}
|
|
|
|
if strings.HasPrefix(c.Name, "plan9-") {
|
|
|
|
return "src/make.rc"
|
|
|
|
}
|
|
|
|
return "src/make.bash"
|
|
|
|
}
|
|
|
|
|
2015-05-21 07:02:38 +03:00
|
|
|
// MakeScriptArgs returns the set of arguments that should be passed to the
|
|
|
|
// make.bash-equivalent script. Usually empty.
|
|
|
|
func (c *BuildConfig) MakeScriptArgs() []string {
|
2022-12-20 20:19:33 +03:00
|
|
|
return append([]string(nil), c.makeScriptArgs...)
|
2015-05-21 07:02:38 +03:00
|
|
|
}
|
|
|
|
|
2015-02-02 15:05:01 +03:00
|
|
|
// GorootFinal returns the default install location for
|
2023-03-23 21:22:53 +03:00
|
|
|
// releases for the given GOOS.
|
|
|
|
func GorootFinal(goos string) string {
|
|
|
|
if goos == "windows" {
|
2015-02-02 15:05:01 +03:00
|
|
|
return "c:\\go"
|
|
|
|
}
|
|
|
|
return "/usr/local/go"
|
|
|
|
}
|
|
|
|
|
2022-08-02 20:31:54 +03:00
|
|
|
// MachineType returns the AWS or GCE machine type to use for this builder.
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
func (c *HostConfig) MachineType() string {
|
dashboard,cmd/coordinator: unify and simplify GOPROXY setting behavior
The existing behavior for setting GOPROXY is rather hard to follow, and
doesn't work correctly in many cases. For example, longtest on a reverse
builder gets the GKE proxy. Before CL 479837 there were no longtest
builders outside of GCE, so this case was never covered. Fixing this is
the motivation of this CL.
They way configuration works today is:
1. buildstatus.go unconditionally sets GOPROXY to the GKE proxy [1].
2. st.conf.ModuleEnv potentially overrides GOPROXY with a more
reasonable setting, with a bunch of complex conditions.
Unify and simplify this process by moving it into buildstatus.go, where
their is now a strict ordering of possible GOPROXY values. Notable
changes:
* The GKE proxy is never used outside of GCE.
* There is a consistent default/fallback of proxy.golang.org.
I initially tried to split this into two CLs: one unifying the
implementation and the next changing the behavior, but the old behavior
is so mind-boggling that the first CL doesn't really make much sense.
The annoying part of this CL is that tests move from dashboard to
cmd/coordinator, requiring us to export additional fields so
cmd/coordinator tests can configure the builders.
The test cases themselves are unchanged except for the addition of a
non-GCE longtest builder case.
[1] Except in runSubrepoTests, which avoids doing so for reverse
builders. This was a workaround for private proxy builders in CL 275412,
but wasn't extended to other callers because only subrepo tests were
seeing a regression. More strangeness.
For golang/go#35678.
Change-Id: I6090c8c5e91ce6be9bfc07c16f36ed339c9d27ae
Reviewed-on: https://go-review.googlesource.com/c/build/+/482339
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Run-TryBot: Michael Pratt <mpratt@google.com>
2023-04-05 00:50:46 +03:00
|
|
|
if c.IsEC2 {
|
2022-08-02 20:31:54 +03:00
|
|
|
return c.machineType
|
|
|
|
}
|
2022-07-22 19:04:15 +03:00
|
|
|
typ := c.machineType
|
|
|
|
if typ == "" {
|
|
|
|
if c.NestedVirt || c.MinCPUPlatform != "" {
|
|
|
|
// e2 instances do not support nested virtualization, but n2 instances do.
|
|
|
|
// Same for MinCPUPlatform: https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform#limitations
|
|
|
|
typ = "n2"
|
|
|
|
} else {
|
|
|
|
typ = "e2"
|
|
|
|
}
|
2015-01-15 23:46:22 +03:00
|
|
|
}
|
2022-07-22 19:04:15 +03:00
|
|
|
if strings.Contains(typ, "-") { // full type like "n2-standard-8"
|
|
|
|
return typ
|
2021-10-15 04:54:32 +03:00
|
|
|
}
|
2018-05-04 05:42:17 +03:00
|
|
|
if c.IsContainer() {
|
|
|
|
// Set a higher default machine size for containers,
|
|
|
|
// so their /workdir tmpfs can be larger. The COS
|
|
|
|
// image has no swap, so we want to make sure the
|
|
|
|
// /workdir fits completely in memory.
|
2022-07-22 19:04:15 +03:00
|
|
|
return typ + "-standard-16" // 16 vCPUs, 64 GB mem
|
2018-05-04 05:42:17 +03:00
|
|
|
}
|
2022-07-22 19:04:15 +03:00
|
|
|
return typ + "-standard-8" // 8 vCPUs, 32 GB mem
|
2015-01-15 23:46:22 +03:00
|
|
|
}
|
|
|
|
|
2020-05-13 20:27:15 +03:00
|
|
|
// IsEC2 returns true if the machine type is an EC2 arm64 type.
|
2016-09-23 03:06:28 +03:00
|
|
|
// PoolName returns a short summary of the builder's host type for the
|
2017-04-03 17:51:28 +03:00
|
|
|
// https://farmer.golang.org/builders page.
|
2016-09-23 03:06:28 +03:00
|
|
|
func (c *HostConfig) PoolName() string {
|
|
|
|
switch {
|
|
|
|
case c.IsReverse:
|
|
|
|
return "Reverse (dedicated machine/VM)"
|
dashboard,cmd/coordinator: unify and simplify GOPROXY setting behavior
The existing behavior for setting GOPROXY is rather hard to follow, and
doesn't work correctly in many cases. For example, longtest on a reverse
builder gets the GKE proxy. Before CL 479837 there were no longtest
builders outside of GCE, so this case was never covered. Fixing this is
the motivation of this CL.
They way configuration works today is:
1. buildstatus.go unconditionally sets GOPROXY to the GKE proxy [1].
2. st.conf.ModuleEnv potentially overrides GOPROXY with a more
reasonable setting, with a bunch of complex conditions.
Unify and simplify this process by moving it into buildstatus.go, where
their is now a strict ordering of possible GOPROXY values. Notable
changes:
* The GKE proxy is never used outside of GCE.
* There is a consistent default/fallback of proxy.golang.org.
I initially tried to split this into two CLs: one unifying the
implementation and the next changing the behavior, but the old behavior
is so mind-boggling that the first CL doesn't really make much sense.
The annoying part of this CL is that tests move from dashboard to
cmd/coordinator, requiring us to export additional fields so
cmd/coordinator tests can configure the builders.
The test cases themselves are unchanged except for the addition of a
non-GCE longtest builder case.
[1] Except in runSubrepoTests, which avoids doing so for reverse
builders. This was a workaround for private proxy builders in CL 275412,
but wasn't extended to other callers because only subrepo tests were
seeing a regression. More strangeness.
For golang/go#35678.
Change-Id: I6090c8c5e91ce6be9bfc07c16f36ed339c9d27ae
Reviewed-on: https://go-review.googlesource.com/c/build/+/482339
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Run-TryBot: Michael Pratt <mpratt@google.com>
2023-04-05 00:50:46 +03:00
|
|
|
case c.IsEC2:
|
2020-05-20 00:26:14 +03:00
|
|
|
return "EC2 VM Container"
|
2018-05-05 19:36:05 +03:00
|
|
|
case c.IsVM():
|
2016-09-23 03:06:28 +03:00
|
|
|
return "GCE VM"
|
2018-05-05 19:36:05 +03:00
|
|
|
case c.IsContainer():
|
2018-05-04 05:42:17 +03:00
|
|
|
return "Container"
|
2016-09-23 03:06:28 +03:00
|
|
|
}
|
cmd/coordinator, cmd/buildlet, cmd/gomote: add SSH support
This adds an SSH server to farmer.golang.org on port 2222 that proxies
SSH connections to users' gomote-created buildlet instances.
For example:
$ gomote create openbsd-amd64-60
user-bradfitz-openbsd-amd64-60-1
$ gomote ssh user-bradfitz-openbsd-amd64-60-1
Warning: Permanently added '[localhost]:33351' (ECDSA) to the list of known hosts.
OpenBSD 6.0 (GENERIC.MP) golang/go#2319: Tue Jul 26 13:00:43 MDT 2016
Welcome to OpenBSD: The proactively secure Unix-like operating system.
Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code. With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.
$
As before, if the coordinator process is restarted (or crashes, is
evicted, etc), all gomote instances die.
Not yet supported:
* scp (help wanted)
* not all host types are configured. most are. some will need slight
config tweaks to the Docker image (e.g. adding openssh-server)
Supports currently:
* linux-amd64 (host type shared by 386, nacl)
* linux-arm
* linux-arm64
* darwin
* freebsd
* openbsd
* plan9-386
* windows
Implementation details:
* the ssh server process listens on port 2222 in the coordinator
(farmer.golang.org), which is behind a GKE TCP load balancer.
* the ssh server library is github.com/gliderlabs/ssh
* authentication is done via Github users' public keys. It's assumed
that gomote user == github user. But there's a mapping in the code
for known exceptions.
* we can't give out access to this too widely. too many things are
accessible from within the host environment if you look in the right
places. Details omitted. But the Go team and other trusted gomote
users can use this.
* the buildlet binary has a new /connect-ssh handler that acts like a
CONNECT request but instead of taking an explicit host:port, just
says "give me your machine's SSH connection". The buildlet can also
start sshd if needed for the environment. The /connect-ssh handler
also installs the coordinator's public key.
* a new buildlet client library method "ConnectSSH" hits the /connect-ssh
handler and returns a net.Conn.
* the coordinator's ssh.Handler is just running the OpenSSH ssh client.
* because the OpenSSH ssh child process can't connect to a net.Conn,
an emphemeral localhost port is created on the coordinator to proxy
between the ssh client and the net.Conn returned by ConnectSSH.
* The /connect-ssh handler requires http.Hijacker, which requires
fully compliant net.Conn implementations as of Go 1.8. So I needed
to flesh out revdial too, testing it with the
golang.org/x/net/nettest package.
* plan9 doesn't have an ssh server, so we use 0intro's new conterm
program (drawterm without GUI support) to connect to plan9 from the
coordinator ssh proxy instead of using the OpenSSH ssh client
binary.
* windows doesn't have an ssh server, so we enable the telnet service
and the coordinator ssh proxy uses telnet instead on the backend
on the private network. (There is a Windows ssh server but only in
new versions.)
Happy debugging over ssh!
Fixes golang/go#19956
Change-Id: I80a62064c5f85af1f195f980c862ba29af4015f0
Reviewed-on: https://go-review.googlesource.com/50750
Reviewed-by: Herbie Ong <herbie@google.com>
Reviewed-by: Jessie Frazelle <me@jessfraz.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-07-22 22:15:56 +03:00
|
|
|
panic("unknown builder type")
|
|
|
|
}
|
|
|
|
|
2019-02-22 00:10:54 +03:00
|
|
|
// ContainerVMImage returns the base VM name (not the fully qualified
|
|
|
|
// URL resource name of the VM) that starts the konlet program that
|
2019-05-17 23:08:13 +03:00
|
|
|
// pulls & runs a container.
|
|
|
|
// The empty string means that no particular VM image is required
|
|
|
|
// and the caller can run this container in any host.
|
|
|
|
//
|
|
|
|
// This method is only applicable when c.IsContainer() is true.
|
2019-02-22 00:10:54 +03:00
|
|
|
func (c *HostConfig) ContainerVMImage() string {
|
|
|
|
if c.KonletVMImage != "" {
|
|
|
|
return c.KonletVMImage
|
|
|
|
}
|
2019-05-17 23:08:13 +03:00
|
|
|
if c.NestedVirt {
|
2022-10-26 21:01:19 +03:00
|
|
|
return "debian-bullseye-vmx"
|
2019-05-17 23:08:13 +03:00
|
|
|
}
|
dashboard,cmd/coordinator: unify and simplify GOPROXY setting behavior
The existing behavior for setting GOPROXY is rather hard to follow, and
doesn't work correctly in many cases. For example, longtest on a reverse
builder gets the GKE proxy. Before CL 479837 there were no longtest
builders outside of GCE, so this case was never covered. Fixing this is
the motivation of this CL.
They way configuration works today is:
1. buildstatus.go unconditionally sets GOPROXY to the GKE proxy [1].
2. st.conf.ModuleEnv potentially overrides GOPROXY with a more
reasonable setting, with a bunch of complex conditions.
Unify and simplify this process by moving it into buildstatus.go, where
their is now a strict ordering of possible GOPROXY values. Notable
changes:
* The GKE proxy is never used outside of GCE.
* There is a consistent default/fallback of proxy.golang.org.
I initially tried to split this into two CLs: one unifying the
implementation and the next changing the behavior, but the old behavior
is so mind-boggling that the first CL doesn't really make much sense.
The annoying part of this CL is that tests move from dashboard to
cmd/coordinator, requiring us to export additional fields so
cmd/coordinator tests can configure the builders.
The test cases themselves are unchanged except for the addition of a
non-GCE longtest builder case.
[1] Except in runSubrepoTests, which avoids doing so for reverse
builders. This was a workaround for private proxy builders in CL 275412,
but wasn't extended to other callers because only subrepo tests were
seeing a regression. More strangeness.
For golang/go#35678.
Change-Id: I6090c8c5e91ce6be9bfc07c16f36ed339c9d27ae
Reviewed-on: https://go-review.googlesource.com/c/build/+/482339
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Run-TryBot: Michael Pratt <mpratt@google.com>
2023-04-05 00:50:46 +03:00
|
|
|
if c.IsEC2 && c.ContainerImage != "" {
|
2020-05-20 00:26:14 +03:00
|
|
|
return fmt.Sprintf("gcr.io/%s/%s", buildenv.Production.ProjectName, c.ContainerImage)
|
|
|
|
}
|
2019-05-17 23:08:13 +03:00
|
|
|
return ""
|
2019-02-22 00:10:54 +03:00
|
|
|
}
|
|
|
|
|
cmd/coordinator, cmd/buildlet, cmd/gomote: add SSH support
This adds an SSH server to farmer.golang.org on port 2222 that proxies
SSH connections to users' gomote-created buildlet instances.
For example:
$ gomote create openbsd-amd64-60
user-bradfitz-openbsd-amd64-60-1
$ gomote ssh user-bradfitz-openbsd-amd64-60-1
Warning: Permanently added '[localhost]:33351' (ECDSA) to the list of known hosts.
OpenBSD 6.0 (GENERIC.MP) golang/go#2319: Tue Jul 26 13:00:43 MDT 2016
Welcome to OpenBSD: The proactively secure Unix-like operating system.
Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code. With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.
$
As before, if the coordinator process is restarted (or crashes, is
evicted, etc), all gomote instances die.
Not yet supported:
* scp (help wanted)
* not all host types are configured. most are. some will need slight
config tweaks to the Docker image (e.g. adding openssh-server)
Supports currently:
* linux-amd64 (host type shared by 386, nacl)
* linux-arm
* linux-arm64
* darwin
* freebsd
* openbsd
* plan9-386
* windows
Implementation details:
* the ssh server process listens on port 2222 in the coordinator
(farmer.golang.org), which is behind a GKE TCP load balancer.
* the ssh server library is github.com/gliderlabs/ssh
* authentication is done via Github users' public keys. It's assumed
that gomote user == github user. But there's a mapping in the code
for known exceptions.
* we can't give out access to this too widely. too many things are
accessible from within the host environment if you look in the right
places. Details omitted. But the Go team and other trusted gomote
users can use this.
* the buildlet binary has a new /connect-ssh handler that acts like a
CONNECT request but instead of taking an explicit host:port, just
says "give me your machine's SSH connection". The buildlet can also
start sshd if needed for the environment. The /connect-ssh handler
also installs the coordinator's public key.
* a new buildlet client library method "ConnectSSH" hits the /connect-ssh
handler and returns a net.Conn.
* the coordinator's ssh.Handler is just running the OpenSSH ssh client.
* because the OpenSSH ssh child process can't connect to a net.Conn,
an emphemeral localhost port is created on the coordinator to proxy
between the ssh client and the net.Conn returned by ConnectSSH.
* The /connect-ssh handler requires http.Hijacker, which requires
fully compliant net.Conn implementations as of Go 1.8. So I needed
to flesh out revdial too, testing it with the
golang.org/x/net/nettest package.
* plan9 doesn't have an ssh server, so we use 0intro's new conterm
program (drawterm without GUI support) to connect to plan9 from the
coordinator ssh proxy instead of using the OpenSSH ssh client
binary.
* windows doesn't have an ssh server, so we enable the telnet service
and the coordinator ssh proxy uses telnet instead on the backend
on the private network. (There is a Windows ssh server but only in
new versions.)
Happy debugging over ssh!
Fixes golang/go#19956
Change-Id: I80a62064c5f85af1f195f980c862ba29af4015f0
Reviewed-on: https://go-review.googlesource.com/50750
Reviewed-by: Herbie Ong <herbie@google.com>
Reviewed-by: Jessie Frazelle <me@jessfraz.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-07-22 22:15:56 +03:00
|
|
|
// IsHermetic reports whether this host config gets a fresh
|
|
|
|
// environment (including /usr, /var, etc) for each execution. This is
|
|
|
|
// true for VMs, GKE, and reverse buildlets running their containers
|
|
|
|
// running in Docker, but false on some reverse buildlets.
|
|
|
|
func (c *HostConfig) IsHermetic() bool {
|
|
|
|
switch {
|
|
|
|
case c.IsReverse:
|
|
|
|
return c.HermeticReverse
|
dashboard,cmd/coordinator: unify and simplify GOPROXY setting behavior
The existing behavior for setting GOPROXY is rather hard to follow, and
doesn't work correctly in many cases. For example, longtest on a reverse
builder gets the GKE proxy. Before CL 479837 there were no longtest
builders outside of GCE, so this case was never covered. Fixing this is
the motivation of this CL.
They way configuration works today is:
1. buildstatus.go unconditionally sets GOPROXY to the GKE proxy [1].
2. st.conf.ModuleEnv potentially overrides GOPROXY with a more
reasonable setting, with a bunch of complex conditions.
Unify and simplify this process by moving it into buildstatus.go, where
their is now a strict ordering of possible GOPROXY values. Notable
changes:
* The GKE proxy is never used outside of GCE.
* There is a consistent default/fallback of proxy.golang.org.
I initially tried to split this into two CLs: one unifying the
implementation and the next changing the behavior, but the old behavior
is so mind-boggling that the first CL doesn't really make much sense.
The annoying part of this CL is that tests move from dashboard to
cmd/coordinator, requiring us to export additional fields so
cmd/coordinator tests can configure the builders.
The test cases themselves are unchanged except for the addition of a
non-GCE longtest builder case.
[1] Except in runSubrepoTests, which avoids doing so for reverse
builders. This was a workaround for private proxy builders in CL 275412,
but wasn't extended to other callers because only subrepo tests were
seeing a regression. More strangeness.
For golang/go#35678.
Change-Id: I6090c8c5e91ce6be9bfc07c16f36ed339c9d27ae
Reviewed-on: https://go-review.googlesource.com/c/build/+/482339
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Run-TryBot: Michael Pratt <mpratt@google.com>
2023-04-05 00:50:46 +03:00
|
|
|
case c.IsEC2:
|
2020-05-13 20:27:15 +03:00
|
|
|
return true
|
2018-05-05 19:36:05 +03:00
|
|
|
case c.IsVM():
|
cmd/coordinator, cmd/buildlet, cmd/gomote: add SSH support
This adds an SSH server to farmer.golang.org on port 2222 that proxies
SSH connections to users' gomote-created buildlet instances.
For example:
$ gomote create openbsd-amd64-60
user-bradfitz-openbsd-amd64-60-1
$ gomote ssh user-bradfitz-openbsd-amd64-60-1
Warning: Permanently added '[localhost]:33351' (ECDSA) to the list of known hosts.
OpenBSD 6.0 (GENERIC.MP) golang/go#2319: Tue Jul 26 13:00:43 MDT 2016
Welcome to OpenBSD: The proactively secure Unix-like operating system.
Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code. With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.
$
As before, if the coordinator process is restarted (or crashes, is
evicted, etc), all gomote instances die.
Not yet supported:
* scp (help wanted)
* not all host types are configured. most are. some will need slight
config tweaks to the Docker image (e.g. adding openssh-server)
Supports currently:
* linux-amd64 (host type shared by 386, nacl)
* linux-arm
* linux-arm64
* darwin
* freebsd
* openbsd
* plan9-386
* windows
Implementation details:
* the ssh server process listens on port 2222 in the coordinator
(farmer.golang.org), which is behind a GKE TCP load balancer.
* the ssh server library is github.com/gliderlabs/ssh
* authentication is done via Github users' public keys. It's assumed
that gomote user == github user. But there's a mapping in the code
for known exceptions.
* we can't give out access to this too widely. too many things are
accessible from within the host environment if you look in the right
places. Details omitted. But the Go team and other trusted gomote
users can use this.
* the buildlet binary has a new /connect-ssh handler that acts like a
CONNECT request but instead of taking an explicit host:port, just
says "give me your machine's SSH connection". The buildlet can also
start sshd if needed for the environment. The /connect-ssh handler
also installs the coordinator's public key.
* a new buildlet client library method "ConnectSSH" hits the /connect-ssh
handler and returns a net.Conn.
* the coordinator's ssh.Handler is just running the OpenSSH ssh client.
* because the OpenSSH ssh child process can't connect to a net.Conn,
an emphemeral localhost port is created on the coordinator to proxy
between the ssh client and the net.Conn returned by ConnectSSH.
* The /connect-ssh handler requires http.Hijacker, which requires
fully compliant net.Conn implementations as of Go 1.8. So I needed
to flesh out revdial too, testing it with the
golang.org/x/net/nettest package.
* plan9 doesn't have an ssh server, so we use 0intro's new conterm
program (drawterm without GUI support) to connect to plan9 from the
coordinator ssh proxy instead of using the OpenSSH ssh client
binary.
* windows doesn't have an ssh server, so we enable the telnet service
and the coordinator ssh proxy uses telnet instead on the backend
on the private network. (There is a Windows ssh server but only in
new versions.)
Happy debugging over ssh!
Fixes golang/go#19956
Change-Id: I80a62064c5f85af1f195f980c862ba29af4015f0
Reviewed-on: https://go-review.googlesource.com/50750
Reviewed-by: Herbie Ong <herbie@google.com>
Reviewed-by: Jessie Frazelle <me@jessfraz.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-07-22 22:15:56 +03:00
|
|
|
return true
|
2018-05-05 19:36:05 +03:00
|
|
|
case c.IsContainer():
|
cmd/coordinator, cmd/buildlet, cmd/gomote: add SSH support
This adds an SSH server to farmer.golang.org on port 2222 that proxies
SSH connections to users' gomote-created buildlet instances.
For example:
$ gomote create openbsd-amd64-60
user-bradfitz-openbsd-amd64-60-1
$ gomote ssh user-bradfitz-openbsd-amd64-60-1
Warning: Permanently added '[localhost]:33351' (ECDSA) to the list of known hosts.
OpenBSD 6.0 (GENERIC.MP) golang/go#2319: Tue Jul 26 13:00:43 MDT 2016
Welcome to OpenBSD: The proactively secure Unix-like operating system.
Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code. With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.
$
As before, if the coordinator process is restarted (or crashes, is
evicted, etc), all gomote instances die.
Not yet supported:
* scp (help wanted)
* not all host types are configured. most are. some will need slight
config tweaks to the Docker image (e.g. adding openssh-server)
Supports currently:
* linux-amd64 (host type shared by 386, nacl)
* linux-arm
* linux-arm64
* darwin
* freebsd
* openbsd
* plan9-386
* windows
Implementation details:
* the ssh server process listens on port 2222 in the coordinator
(farmer.golang.org), which is behind a GKE TCP load balancer.
* the ssh server library is github.com/gliderlabs/ssh
* authentication is done via Github users' public keys. It's assumed
that gomote user == github user. But there's a mapping in the code
for known exceptions.
* we can't give out access to this too widely. too many things are
accessible from within the host environment if you look in the right
places. Details omitted. But the Go team and other trusted gomote
users can use this.
* the buildlet binary has a new /connect-ssh handler that acts like a
CONNECT request but instead of taking an explicit host:port, just
says "give me your machine's SSH connection". The buildlet can also
start sshd if needed for the environment. The /connect-ssh handler
also installs the coordinator's public key.
* a new buildlet client library method "ConnectSSH" hits the /connect-ssh
handler and returns a net.Conn.
* the coordinator's ssh.Handler is just running the OpenSSH ssh client.
* because the OpenSSH ssh child process can't connect to a net.Conn,
an emphemeral localhost port is created on the coordinator to proxy
between the ssh client and the net.Conn returned by ConnectSSH.
* The /connect-ssh handler requires http.Hijacker, which requires
fully compliant net.Conn implementations as of Go 1.8. So I needed
to flesh out revdial too, testing it with the
golang.org/x/net/nettest package.
* plan9 doesn't have an ssh server, so we use 0intro's new conterm
program (drawterm without GUI support) to connect to plan9 from the
coordinator ssh proxy instead of using the OpenSSH ssh client
binary.
* windows doesn't have an ssh server, so we enable the telnet service
and the coordinator ssh proxy uses telnet instead on the backend
on the private network. (There is a Windows ssh server but only in
new versions.)
Happy debugging over ssh!
Fixes golang/go#19956
Change-Id: I80a62064c5f85af1f195f980c862ba29af4015f0
Reviewed-on: https://go-review.googlesource.com/50750
Reviewed-by: Herbie Ong <herbie@google.com>
Reviewed-by: Jessie Frazelle <me@jessfraz.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-07-22 22:15:56 +03:00
|
|
|
return true
|
|
|
|
}
|
|
|
|
panic("unknown builder type")
|
2016-09-23 03:06:28 +03:00
|
|
|
}
|
|
|
|
|
2022-10-04 23:42:12 +03:00
|
|
|
// IsGoogle reports whether this host is operated by Google,
|
|
|
|
// implying that we trust it to be secure and available.
|
|
|
|
func (c *HostConfig) IsGoogle() bool {
|
|
|
|
if c.IsContainer() || c.IsVM() {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
if c.IsReverse && c.GoogleReverse {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
2020-11-06 15:55:36 +03:00
|
|
|
// NumTestHelpers reports how many additional buildlets
|
|
|
|
// past the first one to help out with sharded tests.
|
|
|
|
//
|
|
|
|
// isTry specifies whether it's for a pre-submit test
|
|
|
|
// run (a TryBot or SlowBot) where speed matters more.
|
cmd/coordinator, dashboard: remove some trybots, shard others wider
I'm aiming to have trybot runs finish in under 5 minutes.
This CL removes openbsd-386-gce58 and freebsd-386-gce101 from the trybot set.
openbsd-386-gce58 is the slowest builder. It has an average speed of
722 seconds (and 95 percentile of 923 seconds) over the past week, and
that's sharded over 4 machines. Too slow. It's not worth the resources
to keep it as a trybot. It hasn't caught any interesting bugs. This
builder will still run, but not as a pre-submit trybot.
freebsd-386-gce101 is not slow, but we're removing it to shift its
resources to shard other builders wider.
The coordinator now supports varying the build sharding width based on
whether a build is for a trybot or not. This CL defines separate
numbers for each, sharding builds wider as needed for some trybots.
freebsd-amd64-gce101 goes from 4 to 5 machines in try runs, and down
to 3 when not in try runs.
linux-amd64-race gets one more machine during try runs, and one fewer
in regular runs.
linux-arm goes from 7 machines always, to 3 or 8, depending on whether
it's a try run.
openbsd-amd64-58 goes from 4 to 3 or 6.
windows-amd64-gce goes from 4 to 2 or 6.
windows-amd64-race goes from 4 to 2 or 6.
darwin-amd64-10_11 goes from 3 to 3 or 4.
I'll see how these do over the next few days and readjust as needed.
Also in this CL: fix the constants for the expected duration of
make.bash, which impact when we schedule the creation of test sharding
helper buildlets. We were creating them too early before, wasting
resources.
Change-Id: I38a9b24841e196f1eb668de058c49af8c1d1c64f
Reviewed-on: https://go-review.googlesource.com/29116
Reviewed-by: Quentin Smith <quentin@golang.org>
2016-09-14 01:45:48 +03:00
|
|
|
func (c *BuildConfig) NumTestHelpers(isTry bool) int {
|
|
|
|
if isTry && c.numTryTestHelpers != 0 {
|
|
|
|
return c.numTryTestHelpers
|
|
|
|
}
|
|
|
|
return c.numTestHelpers
|
|
|
|
}
|
|
|
|
|
2018-10-26 22:21:58 +03:00
|
|
|
// defaultTrySet returns a trybot policy function that reports whether
|
|
|
|
// a project should use trybots. All the default projects are included,
|
|
|
|
// plus any given in extraProj.
|
2019-03-07 20:44:41 +03:00
|
|
|
func defaultTrySet(extraProj ...string) func(proj, branch, goBranch string) bool {
|
|
|
|
return func(proj, branch, goBranch string) bool {
|
2018-10-26 22:21:58 +03:00
|
|
|
if proj == "go" {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
for _, p := range extraProj {
|
|
|
|
if proj == p {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
switch proj {
|
2019-03-14 23:35:32 +03:00
|
|
|
case "grpc-review":
|
2018-10-26 22:21:58 +03:00
|
|
|
return false
|
|
|
|
}
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// explicitTrySet returns a trybot policy function that reports
|
|
|
|
// whether a project should use trybots. Only the provided projects in
|
|
|
|
// projs are enabled.
|
2019-03-07 20:44:41 +03:00
|
|
|
func explicitTrySet(projs ...string) func(proj, branch, goBranch string) bool {
|
|
|
|
return func(proj, branch, goBranch string) bool {
|
2018-10-26 22:21:58 +03:00
|
|
|
for _, p := range projs {
|
|
|
|
if proj == p {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-07-13 21:22:13 +03:00
|
|
|
// miscCompileBuildSet returns a policy function that reports whether a project
|
2023-02-02 22:11:23 +03:00
|
|
|
// should use trybots based on the platform.
|
2023-07-13 21:22:13 +03:00
|
|
|
func miscCompileBuildSet(goos, goarch string) func(proj, branch, goBranch string) bool {
|
2023-02-02 22:11:23 +03:00
|
|
|
return func(proj, branch, goBranch string) bool {
|
2023-02-02 22:15:56 +03:00
|
|
|
if proj != "go" && branch != "master" {
|
|
|
|
return false // #58311
|
2023-02-02 22:11:23 +03:00
|
|
|
}
|
|
|
|
switch proj {
|
|
|
|
case "benchmarks":
|
2023-05-09 00:30:57 +03:00
|
|
|
// Failure to build because of a dependency not supported on plan9.
|
|
|
|
// #58306 for loong64.
|
|
|
|
return goos != "plan9" && goarch != "loong64"
|
2023-02-02 22:11:23 +03:00
|
|
|
case "build":
|
|
|
|
return goarch != "riscv64" // #58307
|
|
|
|
case "exp":
|
|
|
|
// exp fails to build most cross-compile platforms, partly because of x/mobile dependencies.
|
|
|
|
return false
|
|
|
|
case "mobile":
|
|
|
|
// mobile fails to build on all cross-compile platforms. This is somewhat expected
|
|
|
|
// given the nature of the repository. Leave this as a blanket policy for now.
|
|
|
|
return false
|
2023-07-13 21:22:13 +03:00
|
|
|
case "pkgsite": // #61341
|
2023-08-31 22:10:03 +03:00
|
|
|
return goos != "plan9" && goos != "wasip1"
|
2023-02-02 22:11:23 +03:00
|
|
|
case "vuln":
|
|
|
|
// Failure to build because of a dependency not supported on plan9.
|
|
|
|
return goos != "plan9"
|
|
|
|
case "vulndb":
|
|
|
|
return goos != "aix" // #58308
|
|
|
|
case "website":
|
|
|
|
// Failure to build because of a dependency not supported on plan9.
|
|
|
|
return goos != "plan9"
|
|
|
|
}
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-01-15 23:46:22 +03:00
|
|
|
func init() {
|
2022-01-05 20:21:24 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "freebsd-amd64-12_3",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-freebsd-amd64-12_3",
|
2022-01-05 20:21:24 +03:00
|
|
|
tryBot: defaultTrySet("sys"),
|
|
|
|
|
|
|
|
distTestAdjust: fasterTrybots, // If changing this policy, update TestShouldRunDistTest accordingly.
|
|
|
|
numTryTestHelpers: 4,
|
|
|
|
})
|
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "freebsd-386-12_3",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-freebsd-amd64-12_3",
|
2022-01-05 20:21:24 +03:00
|
|
|
env: []string{"GOARCH=386", "GOHOSTARCH=386"},
|
|
|
|
distTestAdjust: fasterTrybots,
|
|
|
|
numTryTestHelpers: 4,
|
|
|
|
})
|
2015-01-22 02:15:48 +03:00
|
|
|
addBuilder(BuildConfig{
|
2019-11-14 18:43:33 +03:00
|
|
|
Name: "freebsd-amd64-race",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-freebsd-amd64-13_0",
|
2024-02-22 18:53:13 +03:00
|
|
|
env: []string{
|
|
|
|
// Give this builder more time. The default timeout appears to be too small for x/tools
|
|
|
|
// tests (specifically, I/O seems to be slower on this builder). See #64473.
|
|
|
|
"GO_TEST_TIMEOUT_SCALE=2",
|
|
|
|
},
|
2017-02-27 19:05:25 +03:00
|
|
|
})
|
2021-11-19 00:33:40 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "freebsd-amd64-13_0",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-freebsd-amd64-13_0",
|
2021-11-19 00:33:40 +03:00
|
|
|
tryBot: explicitTrySet("sys"),
|
|
|
|
distTestAdjust: fasterTrybots, // If changing this policy, update TestShouldRunDistTest accordingly.
|
|
|
|
numTryTestHelpers: 4,
|
|
|
|
})
|
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "freebsd-386-13_0",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-freebsd-amd64-13_0",
|
2021-11-19 00:33:40 +03:00
|
|
|
tryBot: explicitTrySet("sys"),
|
|
|
|
env: []string{"GOARCH=386", "GOHOSTARCH=386"},
|
|
|
|
distTestAdjust: fasterTrybots,
|
|
|
|
numTryTestHelpers: 4,
|
|
|
|
})
|
2015-01-28 01:22:21 +03:00
|
|
|
addBuilder(BuildConfig{
|
2020-04-09 19:47:03 +03:00
|
|
|
Name: "linux-386",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-linux-amd64-bullseye",
|
2020-04-09 19:47:03 +03:00
|
|
|
distTestAdjust: fasterTrybots,
|
|
|
|
tryBot: defaultTrySet(),
|
2021-08-19 00:45:09 +03:00
|
|
|
Notes: "Debian stable (currently Debian bullseye).",
|
2019-03-06 05:06:17 +03:00
|
|
|
env: []string{
|
|
|
|
"GOARCH=386",
|
|
|
|
"GOHOSTARCH=386",
|
2019-08-29 21:28:01 +03:00
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
2019-03-06 05:06:17 +03:00
|
|
|
},
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
numTestHelpers: 1,
|
|
|
|
numTryTestHelpers: 3,
|
2015-01-28 01:22:21 +03:00
|
|
|
})
|
2020-10-07 18:24:42 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-386-softfloat",
|
|
|
|
Notes: "GO386=softfloat",
|
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
2022-02-16 07:54:15 +03:00
|
|
|
return repo == "go" || repo == "crypto"
|
2020-10-07 18:24:42 +03:00
|
|
|
},
|
2022-10-26 20:52:15 +03:00
|
|
|
HostType: "host-linux-amd64-bullseye",
|
2020-10-07 18:24:42 +03:00
|
|
|
env: []string{"GOARCH=386", "GOHOSTARCH=386", "GO386=softfloat"},
|
|
|
|
})
|
2015-01-28 01:22:21 +03:00
|
|
|
addBuilder(BuildConfig{
|
2023-03-31 18:27:20 +03:00
|
|
|
Name: "linux-amd64",
|
|
|
|
HostType: "host-linux-amd64-bullseye",
|
|
|
|
tryBot: defaultTrySet(),
|
|
|
|
buildsRepo: linuxAmd64Repos,
|
2019-03-06 05:06:17 +03:00
|
|
|
env: []string{
|
2019-08-29 21:28:01 +03:00
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
2019-03-06 05:06:17 +03:00
|
|
|
},
|
2018-05-04 05:42:17 +03:00
|
|
|
numTestHelpers: 1,
|
|
|
|
numTryTestHelpers: 4,
|
2015-11-20 21:00:06 +03:00
|
|
|
})
|
2022-03-25 20:18:35 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-amd64-boringcrypto",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-linux-amd64-bullseye",
|
2022-03-25 20:18:35 +03:00
|
|
|
Notes: "GOEXPERIMENT=boringcrypto",
|
|
|
|
tryBot: defaultTrySet(),
|
|
|
|
env: []string{
|
|
|
|
"GOEXPERIMENT=boringcrypto",
|
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
|
|
|
},
|
|
|
|
numTestHelpers: 1,
|
|
|
|
numTryTestHelpers: 4,
|
|
|
|
})
|
2019-02-16 01:05:42 +03:00
|
|
|
addBuilder(BuildConfig{
|
2019-03-27 02:04:31 +03:00
|
|
|
Name: "linux-amd64-vmx",
|
2022-10-26 21:01:19 +03:00
|
|
|
HostType: "host-linux-amd64-bullseye-vmx",
|
2019-03-27 02:04:31 +03:00
|
|
|
buildsRepo: disabledBuilder,
|
2019-02-16 01:05:42 +03:00
|
|
|
})
|
2022-07-29 19:16:23 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-amd64-alpine",
|
|
|
|
HostType: "host-linux-amd64-alpine",
|
|
|
|
})
|
2017-11-18 06:31:35 +03:00
|
|
|
|
dashboard: include at most 3 ports per misc-compile TryBot
Between Go 1.15, 1.16 and tip, the following 29 ports don't have
a real TryBot and instead rely on misc-compile TryBots for their
pre-submit coverage:
• aix/ppc64
• darwin/amd64
• darwin/arm64
• dragonfly/amd64
• freebsd/386
• freebsd/arm
• freebsd/arm64
• illumos/amd64
• linux/mips
• linux/mips64
• linux/mipsle
• linux/mips64le
• linux/ppc64
• linux/ppc64le
• linux/riscv64
• linux/s390x
• netbsd/386
• netbsd/amd64
• netbsd/arm
• netbsd/arm64
• openbsd/386
• openbsd/arm
• openbsd/arm64
• openbsd/mips64
• plan9/386
• plan9/amd64
• plan9/arm
• solaris/amd64
• windows/arm
The previous approach for misc-compile target selection was to break
them up primarily by GOOS value. However, as new architectures were
added over time, some misc-compile TryBots got to a point where they
were testing upwards of 5 ports (for example, misc-compile-openbsd
was testing 386, amd64, arm, arm64, and mips64 architectures).
Since each port is tested sequentially, allocating too many to one
misc-compile TryBot can cause it to become the bottleneck of an
entire TryBot run, exceeding the 10 minute completion time goal.
Arrange it so misc-compile TryBot target selection is done explicitly
in x/build, and pick 3 as max number of targets per TryBot for now.
Based on recent timing observations, that should strike a decent balance
between resource use (spinning up a builder) vs chance of a misc-compile
TryBot becoming a bottleneck. It will also give us an opportunity to
compare timing of 1, 2 and 3 targets per misc-compile in the future.
(When we start tracking timing for TryBot completion time holistically,
we'll be in a better position to refine this strategy further.)
Making misc-compile target selection explicit in x/build also enables
removing unnecessary duplicate misc-compile coverage from ports that
already have a real TryBot (for example, openbsd/amd64 was previously
tested via both the openbsd-amd64-68 TryBot and misc-compile-openbsd).
This shouldn't be needed, so it's no longer done.
For golang/go#17104.
Fixes golang/go#32632.
Change-Id: Iac918377b91af3e48780b38ffdf3153e213eeba2
Reviewed-on: https://go-review.googlesource.com/c/build/+/313210
Trust: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
Reviewed-by: Carlos Amedee <carlos@golang.org>
2021-04-23 23:56:37 +03:00
|
|
|
// addMiscCompileGo1 adds a misc-compile TryBot that
|
2023-02-02 21:02:47 +03:00
|
|
|
// runs buildall.bash on the specified target ("$goos-$goarch").
|
2020-11-03 06:25:51 +03:00
|
|
|
// If min is non-zero, it specifies the minimum Go 1.x version.
|
2023-02-02 21:02:47 +03:00
|
|
|
addMiscCompileGo1 := func(min int, goos, goarch, extraSuffix string, extraEnv ...string) {
|
2020-11-03 06:25:51 +03:00
|
|
|
var v types.MajorMinor
|
|
|
|
var alsoNote string
|
|
|
|
if min != 0 {
|
2022-08-11 21:12:53 +03:00
|
|
|
v = types.MajorMinor{Major: 1, Minor: min}
|
2020-11-03 06:25:51 +03:00
|
|
|
alsoNote = fmt.Sprintf(" Applies to Go 1.%d and newer.", min)
|
|
|
|
}
|
2023-02-02 21:02:47 +03:00
|
|
|
platform := goos + "-" + goarch + extraSuffix
|
2016-05-05 03:42:49 +03:00
|
|
|
addBuilder(BuildConfig{
|
2023-02-02 21:02:47 +03:00
|
|
|
Name: "misc-compile-" + platform,
|
|
|
|
HostType: "host-linux-amd64-bullseye",
|
2023-07-13 21:22:13 +03:00
|
|
|
tryBot: miscCompileBuildSet(goos, goarch),
|
2023-02-02 21:02:47 +03:00
|
|
|
env: append(extraEnv, "GO_DISABLE_OUTBOUND_NETWORK=1", "GOOS="+goos, "GOARCH="+goarch),
|
2020-11-03 06:25:51 +03:00
|
|
|
tryOnly: true,
|
|
|
|
MinimumGoVersion: v,
|
|
|
|
CompileOnly: true,
|
2023-02-02 21:22:07 +03:00
|
|
|
SkipSnapshot: true,
|
2023-02-02 22:15:56 +03:00
|
|
|
Notes: "Runs make.bash (or compile-only go test) for " + platform + ", but doesn't run any tests." + alsoNote,
|
2016-05-05 03:42:49 +03:00
|
|
|
})
|
|
|
|
}
|
2020-11-03 06:25:51 +03:00
|
|
|
// addMiscCompile adds a misc-compile TryBot
|
|
|
|
// for all supported Go versions.
|
2023-02-02 21:02:47 +03:00
|
|
|
addMiscCompile := func(goos, goarch string) { addMiscCompileGo1(0, goos, goarch, "") }
|
dashboard: include at most 3 ports per misc-compile TryBot
Between Go 1.15, 1.16 and tip, the following 29 ports don't have
a real TryBot and instead rely on misc-compile TryBots for their
pre-submit coverage:
• aix/ppc64
• darwin/amd64
• darwin/arm64
• dragonfly/amd64
• freebsd/386
• freebsd/arm
• freebsd/arm64
• illumos/amd64
• linux/mips
• linux/mips64
• linux/mipsle
• linux/mips64le
• linux/ppc64
• linux/ppc64le
• linux/riscv64
• linux/s390x
• netbsd/386
• netbsd/amd64
• netbsd/arm
• netbsd/arm64
• openbsd/386
• openbsd/arm
• openbsd/arm64
• openbsd/mips64
• plan9/386
• plan9/amd64
• plan9/arm
• solaris/amd64
• windows/arm
The previous approach for misc-compile target selection was to break
them up primarily by GOOS value. However, as new architectures were
added over time, some misc-compile TryBots got to a point where they
were testing upwards of 5 ports (for example, misc-compile-openbsd
was testing 386, amd64, arm, arm64, and mips64 architectures).
Since each port is tested sequentially, allocating too many to one
misc-compile TryBot can cause it to become the bottleneck of an
entire TryBot run, exceeding the 10 minute completion time goal.
Arrange it so misc-compile TryBot target selection is done explicitly
in x/build, and pick 3 as max number of targets per TryBot for now.
Based on recent timing observations, that should strike a decent balance
between resource use (spinning up a builder) vs chance of a misc-compile
TryBot becoming a bottleneck. It will also give us an opportunity to
compare timing of 1, 2 and 3 targets per misc-compile in the future.
(When we start tracking timing for TryBot completion time holistically,
we'll be in a better position to refine this strategy further.)
Making misc-compile target selection explicit in x/build also enables
removing unnecessary duplicate misc-compile coverage from ports that
already have a real TryBot (for example, openbsd/amd64 was previously
tested via both the openbsd-amd64-68 TryBot and misc-compile-openbsd).
This shouldn't be needed, so it's no longer done.
For golang/go#17104.
Fixes golang/go#32632.
Change-Id: Iac918377b91af3e48780b38ffdf3153e213eeba2
Reviewed-on: https://go-review.googlesource.com/c/build/+/313210
Trust: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
Reviewed-by: Carlos Amedee <carlos@golang.org>
2021-04-23 23:56:37 +03:00
|
|
|
|
2023-02-02 21:02:47 +03:00
|
|
|
// To keep things simple, have each misc-compile builder handle exactly one platform.
|
dashboard: include at most 3 ports per misc-compile TryBot
Between Go 1.15, 1.16 and tip, the following 29 ports don't have
a real TryBot and instead rely on misc-compile TryBots for their
pre-submit coverage:
• aix/ppc64
• darwin/amd64
• darwin/arm64
• dragonfly/amd64
• freebsd/386
• freebsd/arm
• freebsd/arm64
• illumos/amd64
• linux/mips
• linux/mips64
• linux/mipsle
• linux/mips64le
• linux/ppc64
• linux/ppc64le
• linux/riscv64
• linux/s390x
• netbsd/386
• netbsd/amd64
• netbsd/arm
• netbsd/arm64
• openbsd/386
• openbsd/arm
• openbsd/arm64
• openbsd/mips64
• plan9/386
• plan9/amd64
• plan9/arm
• solaris/amd64
• windows/arm
The previous approach for misc-compile target selection was to break
them up primarily by GOOS value. However, as new architectures were
added over time, some misc-compile TryBots got to a point where they
were testing upwards of 5 ports (for example, misc-compile-openbsd
was testing 386, amd64, arm, arm64, and mips64 architectures).
Since each port is tested sequentially, allocating too many to one
misc-compile TryBot can cause it to become the bottleneck of an
entire TryBot run, exceeding the 10 minute completion time goal.
Arrange it so misc-compile TryBot target selection is done explicitly
in x/build, and pick 3 as max number of targets per TryBot for now.
Based on recent timing observations, that should strike a decent balance
between resource use (spinning up a builder) vs chance of a misc-compile
TryBot becoming a bottleneck. It will also give us an opportunity to
compare timing of 1, 2 and 3 targets per misc-compile in the future.
(When we start tracking timing for TryBot completion time holistically,
we'll be in a better position to refine this strategy further.)
Making misc-compile target selection explicit in x/build also enables
removing unnecessary duplicate misc-compile coverage from ports that
already have a real TryBot (for example, openbsd/amd64 was previously
tested via both the openbsd-amd64-68 TryBot and misc-compile-openbsd).
This shouldn't be needed, so it's no longer done.
For golang/go#17104.
Fixes golang/go#32632.
Change-Id: Iac918377b91af3e48780b38ffdf3153e213eeba2
Reviewed-on: https://go-review.googlesource.com/c/build/+/313210
Trust: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
Reviewed-by: Carlos Amedee <carlos@golang.org>
2021-04-23 23:56:37 +03:00
|
|
|
//
|
2023-02-02 21:02:47 +03:00
|
|
|
// This is potentially wasteful as there could be much more VM creation overhead, but
|
|
|
|
// it shouldn't add any latency. It also adds some visual noise. The alternative was
|
|
|
|
// more complex support for subrepos; this keeps things simple by following the same
|
|
|
|
// general principle as all the other builders.
|
dashboard: include at most 3 ports per misc-compile TryBot
Between Go 1.15, 1.16 and tip, the following 29 ports don't have
a real TryBot and instead rely on misc-compile TryBots for their
pre-submit coverage:
• aix/ppc64
• darwin/amd64
• darwin/arm64
• dragonfly/amd64
• freebsd/386
• freebsd/arm
• freebsd/arm64
• illumos/amd64
• linux/mips
• linux/mips64
• linux/mipsle
• linux/mips64le
• linux/ppc64
• linux/ppc64le
• linux/riscv64
• linux/s390x
• netbsd/386
• netbsd/amd64
• netbsd/arm
• netbsd/arm64
• openbsd/386
• openbsd/arm
• openbsd/arm64
• openbsd/mips64
• plan9/386
• plan9/amd64
• plan9/arm
• solaris/amd64
• windows/arm
The previous approach for misc-compile target selection was to break
them up primarily by GOOS value. However, as new architectures were
added over time, some misc-compile TryBots got to a point where they
were testing upwards of 5 ports (for example, misc-compile-openbsd
was testing 386, amd64, arm, arm64, and mips64 architectures).
Since each port is tested sequentially, allocating too many to one
misc-compile TryBot can cause it to become the bottleneck of an
entire TryBot run, exceeding the 10 minute completion time goal.
Arrange it so misc-compile TryBot target selection is done explicitly
in x/build, and pick 3 as max number of targets per TryBot for now.
Based on recent timing observations, that should strike a decent balance
between resource use (spinning up a builder) vs chance of a misc-compile
TryBot becoming a bottleneck. It will also give us an opportunity to
compare timing of 1, 2 and 3 targets per misc-compile in the future.
(When we start tracking timing for TryBot completion time holistically,
we'll be in a better position to refine this strategy further.)
Making misc-compile target selection explicit in x/build also enables
removing unnecessary duplicate misc-compile coverage from ports that
already have a real TryBot (for example, openbsd/amd64 was previously
tested via both the openbsd-amd64-68 TryBot and misc-compile-openbsd).
This shouldn't be needed, so it's no longer done.
For golang/go#17104.
Fixes golang/go#32632.
Change-Id: Iac918377b91af3e48780b38ffdf3153e213eeba2
Reviewed-on: https://go-review.googlesource.com/c/build/+/313210
Trust: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
Reviewed-by: Carlos Amedee <carlos@golang.org>
2021-04-23 23:56:37 +03:00
|
|
|
//
|
2023-02-02 21:02:47 +03:00
|
|
|
// See https://go.dev/issue/58163 for more details.
|
|
|
|
addMiscCompile("windows", "arm")
|
|
|
|
addMiscCompile("windows", "arm64")
|
|
|
|
addMiscCompile("darwin", "amd64")
|
|
|
|
addMiscCompile("darwin", "arm64")
|
|
|
|
addMiscCompile("linux", "mips")
|
|
|
|
addMiscCompile("linux", "mips64")
|
|
|
|
addMiscCompile("linux", "mipsle")
|
|
|
|
addMiscCompile("linux", "mips64le")
|
|
|
|
addMiscCompile("linux", "ppc64")
|
|
|
|
addMiscCompile("linux", "ppc64le")
|
|
|
|
addMiscCompile("aix", "ppc64")
|
|
|
|
addMiscCompile("freebsd", "386")
|
|
|
|
addMiscCompile("freebsd", "arm")
|
|
|
|
addMiscCompile("freebsd", "arm64")
|
2023-12-09 00:51:57 +03:00
|
|
|
addMiscCompile("freebsd", "riscv64")
|
2023-02-02 21:02:47 +03:00
|
|
|
addMiscCompile("netbsd", "386")
|
|
|
|
addMiscCompile("netbsd", "amd64")
|
|
|
|
addMiscCompile("netbsd", "arm")
|
|
|
|
addMiscCompile("netbsd", "arm64")
|
|
|
|
addMiscCompile("openbsd", "386")
|
|
|
|
// openbsd-mips64 go.dev/issue/58110
|
|
|
|
addMiscCompile("openbsd", "arm")
|
|
|
|
addMiscCompile("openbsd", "arm64")
|
2023-12-09 00:51:57 +03:00
|
|
|
addMiscCompileGo1(22, "openbsd", "ppc64", "-go1.22")
|
2024-01-25 18:07:21 +03:00
|
|
|
addMiscCompileGo1(23, "openbsd", "riscv64", "-go1.23")
|
2023-02-02 21:02:47 +03:00
|
|
|
addMiscCompile("plan9", "386")
|
|
|
|
addMiscCompile("plan9", "amd64")
|
|
|
|
addMiscCompile("plan9", "arm")
|
|
|
|
addMiscCompile("solaris", "amd64")
|
|
|
|
addMiscCompile("illumos", "amd64")
|
|
|
|
addMiscCompile("dragonfly", "amd64")
|
|
|
|
addMiscCompile("linux", "loong64")
|
|
|
|
addMiscCompile("linux", "riscv64")
|
|
|
|
addMiscCompile("linux", "s390x")
|
|
|
|
addMiscCompile("linux", "arm")
|
|
|
|
addMiscCompileGo1(0, "linux", "arm", "-arm5", "GOARM=5")
|
2020-09-28 18:04:35 +03:00
|
|
|
|
|
|
|
// TODO: Issue 25963, get the misc-compile trybots for Android/iOS.
|
|
|
|
// Then consider subrepos too, so "mobile" can at least be included
|
|
|
|
// as a misc-compile for ^android- and ^ios-.
|
2016-05-05 03:42:49 +03:00
|
|
|
|
2015-01-28 01:22:21 +03:00
|
|
|
addBuilder(BuildConfig{
|
2019-11-14 18:43:33 +03:00
|
|
|
Name: "linux-amd64-nocgo",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-linux-amd64-bullseye",
|
2019-11-14 18:43:33 +03:00
|
|
|
Notes: "cgo disabled",
|
2019-03-14 23:35:32 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
2022-01-07 23:29:05 +03:00
|
|
|
b := buildRepoByDefault(repo)
|
2019-03-14 23:35:32 +03:00
|
|
|
switch repo {
|
|
|
|
case "perf":
|
|
|
|
// Requires sqlite, which requires cgo.
|
2022-01-07 23:29:05 +03:00
|
|
|
b = false
|
|
|
|
case "exp":
|
|
|
|
b = true
|
2019-03-14 23:35:32 +03:00
|
|
|
}
|
2022-01-07 23:29:05 +03:00
|
|
|
return b
|
2019-03-14 23:35:32 +03:00
|
|
|
},
|
2015-01-28 01:22:21 +03:00
|
|
|
env: []string{
|
|
|
|
"CGO_ENABLED=0",
|
2019-08-29 21:28:01 +03:00
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
2015-01-28 01:22:21 +03:00
|
|
|
// This USER=root was required for Docker-based builds but probably isn't required
|
|
|
|
// in the VM anymore, since the buildlet probably already has this in its environment.
|
|
|
|
// (It was required because without cgo, it couldn't find the username)
|
|
|
|
"USER=root",
|
|
|
|
},
|
|
|
|
})
|
|
|
|
addBuilder(BuildConfig{
|
2019-03-11 07:20:46 +03:00
|
|
|
Name: "linux-amd64-noopt",
|
|
|
|
Notes: "optimizations and inlining disabled",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-linux-amd64-bullseye",
|
2019-03-11 07:20:46 +03:00
|
|
|
buildsRepo: onlyGo,
|
2019-03-06 08:20:12 +03:00
|
|
|
env: []string{
|
2019-08-29 21:28:01 +03:00
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
2019-03-06 08:20:12 +03:00
|
|
|
"GO_GCFLAGS=-N -l",
|
|
|
|
},
|
2015-01-28 01:22:21 +03:00
|
|
|
})
|
2016-03-19 01:30:38 +03:00
|
|
|
addBuilder(BuildConfig{
|
2016-05-04 20:47:12 +03:00
|
|
|
Name: "linux-amd64-ssacheck",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-linux-amd64-bullseye",
|
2019-03-11 07:20:46 +03:00
|
|
|
buildsRepo: onlyGo,
|
2018-10-26 22:21:58 +03:00
|
|
|
tryBot: nil, // TODO: add a func to conditionally run this trybot if compiler dirs are touched
|
2016-05-04 20:47:12 +03:00
|
|
|
CompileOnly: true,
|
|
|
|
Notes: "SSA internal checks enabled",
|
2019-03-06 08:20:12 +03:00
|
|
|
env: []string{
|
2019-08-29 21:28:01 +03:00
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
2023-01-27 01:15:36 +03:00
|
|
|
"GO_GCFLAGS=-d=ssa/check/on",
|
2019-03-06 08:20:12 +03:00
|
|
|
},
|
2016-03-19 01:30:38 +03:00
|
|
|
})
|
2020-03-19 17:34:11 +03:00
|
|
|
addBuilder(BuildConfig{
|
2020-04-08 19:13:38 +03:00
|
|
|
Name: "linux-amd64-staticlockranking",
|
2022-10-26 20:52:15 +03:00
|
|
|
HostType: "host-linux-amd64-bullseye",
|
2022-07-22 19:04:15 +03:00
|
|
|
Notes: "builder with GOEXPERIMENT=staticlockranking, see go.dev/issue/37937",
|
2020-03-19 17:34:11 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
2022-02-16 07:54:15 +03:00
|
|
|
return repo == "go"
|
2020-03-19 17:34:11 +03:00
|
|
|
},
|
|
|
|
env: []string{
|
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
|
|
|
"GOEXPERIMENT=staticlockranking",
|
|
|
|
},
|
|
|
|
})
|
2023-08-09 10:08:17 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-amd64-newinliner",
|
|
|
|
HostType: "host-linux-amd64-bullseye",
|
|
|
|
Notes: "builder with GOEXPERIMENT=newinliner, see go.dev/issue/61883",
|
|
|
|
tryBot: func(repo, branch, goBranch string) bool {
|
|
|
|
return repo == "go" && goBranch == "master"
|
|
|
|
},
|
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
return repo == "go" && goBranch == "master"
|
|
|
|
},
|
|
|
|
env: []string{
|
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
|
|
|
"GOEXPERIMENT=newinliner",
|
|
|
|
},
|
|
|
|
GoDeps: []string{
|
|
|
|
"fbf9076ee8c8f665f1e8bba08fdc473cc7a2d690", // CL 511555, which added GOEXPERIMENT=newinliner
|
|
|
|
},
|
2023-08-23 23:53:19 +03:00
|
|
|
numTestHelpers: 1,
|
|
|
|
numTryTestHelpers: 4,
|
2023-08-09 10:08:17 +03:00
|
|
|
})
|
2022-02-16 09:05:35 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-amd64-goamd64v3",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-linux-amd64-bullseye",
|
2022-02-16 09:05:35 +03:00
|
|
|
Notes: "builder with GOAMD64=v3, see proposal 45453 and issue 48505",
|
|
|
|
env: []string{
|
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
|
|
|
"GOAMD64=v3",
|
|
|
|
},
|
|
|
|
})
|
2017-04-22 02:41:12 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-amd64-racecompile",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-linux-amd64-bullseye",
|
2018-10-26 22:21:58 +03:00
|
|
|
tryBot: nil, // TODO: add a func to conditionally run this trybot if compiler dirs are touched
|
2017-04-22 02:41:12 +03:00
|
|
|
CompileOnly: true,
|
2017-04-25 00:14:05 +03:00
|
|
|
SkipSnapshot: true,
|
|
|
|
StopAfterMake: true,
|
2020-03-30 18:20:59 +03:00
|
|
|
InstallRacePackages: []string{"cmd/compile", "cmd/link"},
|
|
|
|
Notes: "race-enabled cmd/compile and cmd/link",
|
2019-03-06 08:20:12 +03:00
|
|
|
env: []string{
|
2019-08-29 21:28:01 +03:00
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
2019-03-06 08:20:12 +03:00
|
|
|
},
|
2017-04-22 02:41:12 +03:00
|
|
|
})
|
2015-01-28 01:22:21 +03:00
|
|
|
addBuilder(BuildConfig{
|
cmd/coordinator, dashboard: remove some trybots, shard others wider
I'm aiming to have trybot runs finish in under 5 minutes.
This CL removes openbsd-386-gce58 and freebsd-386-gce101 from the trybot set.
openbsd-386-gce58 is the slowest builder. It has an average speed of
722 seconds (and 95 percentile of 923 seconds) over the past week, and
that's sharded over 4 machines. Too slow. It's not worth the resources
to keep it as a trybot. It hasn't caught any interesting bugs. This
builder will still run, but not as a pre-submit trybot.
freebsd-386-gce101 is not slow, but we're removing it to shift its
resources to shard other builders wider.
The coordinator now supports varying the build sharding width based on
whether a build is for a trybot or not. This CL defines separate
numbers for each, sharding builds wider as needed for some trybots.
freebsd-amd64-gce101 goes from 4 to 5 machines in try runs, and down
to 3 when not in try runs.
linux-amd64-race gets one more machine during try runs, and one fewer
in regular runs.
linux-arm goes from 7 machines always, to 3 or 8, depending on whether
it's a try run.
openbsd-amd64-58 goes from 4 to 3 or 6.
windows-amd64-gce goes from 4 to 2 or 6.
windows-amd64-race goes from 4 to 2 or 6.
darwin-amd64-10_11 goes from 3 to 3 or 4.
I'll see how these do over the next few days and readjust as needed.
Also in this CL: fix the constants for the expected duration of
make.bash, which impact when we schedule the creation of test sharding
helper buildlets. We were creating them too early before, wasting
resources.
Change-Id: I38a9b24841e196f1eb668de058c49af8c1d1c64f
Reviewed-on: https://go-review.googlesource.com/29116
Reviewed-by: Quentin Smith <quentin@golang.org>
2016-09-14 01:45:48 +03:00
|
|
|
Name: "linux-amd64-race",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-linux-amd64-bullseye",
|
2018-10-26 22:21:58 +03:00
|
|
|
tryBot: defaultTrySet(),
|
2023-03-31 18:27:20 +03:00
|
|
|
buildsRepo: linuxAmd64Repos,
|
2020-04-09 19:47:03 +03:00
|
|
|
distTestAdjust: fasterTrybots,
|
2018-05-04 05:42:17 +03:00
|
|
|
numTestHelpers: 1,
|
cmd/coordinator, dashboard: remove some trybots, shard others wider
I'm aiming to have trybot runs finish in under 5 minutes.
This CL removes openbsd-386-gce58 and freebsd-386-gce101 from the trybot set.
openbsd-386-gce58 is the slowest builder. It has an average speed of
722 seconds (and 95 percentile of 923 seconds) over the past week, and
that's sharded over 4 machines. Too slow. It's not worth the resources
to keep it as a trybot. It hasn't caught any interesting bugs. This
builder will still run, but not as a pre-submit trybot.
freebsd-386-gce101 is not slow, but we're removing it to shift its
resources to shard other builders wider.
The coordinator now supports varying the build sharding width based on
whether a build is for a trybot or not. This CL defines separate
numbers for each, sharding builds wider as needed for some trybots.
freebsd-amd64-gce101 goes from 4 to 5 machines in try runs, and down
to 3 when not in try runs.
linux-amd64-race gets one more machine during try runs, and one fewer
in regular runs.
linux-arm goes from 7 machines always, to 3 or 8, depending on whether
it's a try run.
openbsd-amd64-58 goes from 4 to 3 or 6.
windows-amd64-gce goes from 4 to 2 or 6.
windows-amd64-race goes from 4 to 2 or 6.
darwin-amd64-10_11 goes from 3 to 3 or 4.
I'll see how these do over the next few days and readjust as needed.
Also in this CL: fix the constants for the expected duration of
make.bash, which impact when we schedule the creation of test sharding
helper buildlets. We were creating them too early before, wasting
resources.
Change-Id: I38a9b24841e196f1eb668de058c49af8c1d1c64f
Reviewed-on: https://go-review.googlesource.com/29116
Reviewed-by: Quentin Smith <quentin@golang.org>
2016-09-14 01:45:48 +03:00
|
|
|
numTryTestHelpers: 5,
|
2019-03-06 08:20:12 +03:00
|
|
|
env: []string{
|
2019-08-29 21:28:01 +03:00
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
2019-03-06 08:20:12 +03:00
|
|
|
},
|
2015-01-22 02:15:48 +03:00
|
|
|
})
|
2015-02-13 06:45:02 +03:00
|
|
|
addBuilder(BuildConfig{
|
2019-11-14 18:43:33 +03:00
|
|
|
Name: "linux-386-clang",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-linux-amd64-clang",
|
2022-02-04 19:12:47 +03:00
|
|
|
Notes: "Debian Buster + clang 7.0 instead of gcc",
|
2019-11-14 18:43:33 +03:00
|
|
|
env: []string{"CC=/usr/bin/clang", "GOHOSTARCH=386"},
|
2015-02-13 06:45:02 +03:00
|
|
|
})
|
|
|
|
addBuilder(BuildConfig{
|
2019-11-14 18:43:33 +03:00
|
|
|
Name: "linux-amd64-clang",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-linux-amd64-clang",
|
2022-02-04 19:12:47 +03:00
|
|
|
Notes: "Debian Buster + clang 7.0 instead of gcc",
|
2019-11-14 18:43:33 +03:00
|
|
|
env: []string{"CC=/usr/bin/clang"},
|
2015-02-13 06:45:02 +03:00
|
|
|
})
|
2015-02-14 06:01:32 +03:00
|
|
|
addBuilder(BuildConfig{
|
2019-11-14 18:43:33 +03:00
|
|
|
Name: "linux-386-sid",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-linux-amd64-sid",
|
2019-11-14 18:43:33 +03:00
|
|
|
Notes: "Debian sid (unstable)",
|
|
|
|
env: []string{"GOHOSTARCH=386"},
|
2015-02-14 06:01:32 +03:00
|
|
|
})
|
|
|
|
addBuilder(BuildConfig{
|
2019-11-14 18:43:33 +03:00
|
|
|
Name: "linux-amd64-sid",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-linux-amd64-sid",
|
2019-11-14 18:43:33 +03:00
|
|
|
Notes: "Debian sid (unstable)",
|
2015-02-14 06:01:32 +03:00
|
|
|
})
|
2019-05-08 19:25:38 +03:00
|
|
|
addBuilder(BuildConfig{
|
2019-11-14 18:43:33 +03:00
|
|
|
Name: "linux-amd64-fedora",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-linux-amd64-fedora",
|
2019-11-14 18:43:33 +03:00
|
|
|
Notes: "Fedora",
|
2019-05-08 19:25:38 +03:00
|
|
|
})
|
2019-03-01 19:54:25 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-amd64-androidemu",
|
2022-08-03 22:43:12 +03:00
|
|
|
HostType: "host-linux-amd64-androidemu",
|
2019-03-01 19:54:25 +03:00
|
|
|
env: []string{
|
|
|
|
"GOARCH=amd64",
|
|
|
|
"GOOS=linux",
|
|
|
|
"CGO_ENABLED=1",
|
2019-08-29 21:28:01 +03:00
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
2019-03-01 19:54:25 +03:00
|
|
|
},
|
2019-03-07 20:44:41 +03:00
|
|
|
tryBot: func(repo, branch, goBranch string) bool {
|
2019-03-01 19:54:25 +03:00
|
|
|
// Only for mobile repo for now, not "go":
|
2019-03-07 20:44:41 +03:00
|
|
|
return repo == "mobile" && branch == "master" && goBranch == "master"
|
2019-03-01 19:54:25 +03:00
|
|
|
},
|
2019-03-07 20:44:41 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
return repo == "mobile" && branch == "master" && goBranch == "master"
|
2019-03-01 19:54:25 +03:00
|
|
|
},
|
|
|
|
Notes: "Runs GOOS=linux but with the Android emulator attached, for running x/mobile host tests.",
|
|
|
|
})
|
2023-06-14 18:29:08 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-amd64-bookworm",
|
|
|
|
HostType: "host-linux-amd64-bookworm",
|
|
|
|
Notes: "Debian Bookworm.",
|
|
|
|
env: []string{
|
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
|
|
|
},
|
|
|
|
})
|
2021-08-16 22:35:39 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-amd64-bullseye",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-linux-amd64-bullseye",
|
2021-08-16 22:35:39 +03:00
|
|
|
Notes: "Debian Bullseye.",
|
|
|
|
env: []string{
|
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
|
|
|
},
|
|
|
|
})
|
2020-11-02 23:11:10 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-amd64-buster",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-linux-amd64-buster",
|
2020-11-02 23:11:10 +03:00
|
|
|
Notes: "Debian Buster.",
|
|
|
|
env: []string{
|
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
|
|
|
},
|
|
|
|
})
|
2021-08-19 00:45:09 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-386-buster",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-linux-amd64-buster",
|
2021-08-19 00:45:09 +03:00
|
|
|
Notes: "Debian Buster, 32-bit builder.",
|
|
|
|
env: []string{
|
|
|
|
"GOARCH=386",
|
|
|
|
"GOHOSTARCH=386",
|
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
|
|
|
},
|
|
|
|
})
|
2022-10-26 21:14:22 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-386-bullseye",
|
|
|
|
HostType: "host-linux-amd64-bullseye",
|
|
|
|
Notes: "Debian Bullseye, 32-bit builder.",
|
|
|
|
env: []string{
|
|
|
|
"GOARCH=386",
|
|
|
|
"GOHOSTARCH=386",
|
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
|
|
|
},
|
|
|
|
})
|
2018-05-16 22:50:39 +03:00
|
|
|
addBuilder(BuildConfig{
|
2019-11-14 18:43:33 +03:00
|
|
|
Name: "linux-amd64-longtest",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-linux-amd64-bullseye",
|
2022-02-09 01:05:00 +03:00
|
|
|
Notes: "Debian Bullseye with go test -short=false",
|
2020-05-27 01:19:05 +03:00
|
|
|
tryBot: func(repo, branch, goBranch string) bool {
|
|
|
|
onReleaseBranch := strings.HasPrefix(branch, "release-branch.")
|
|
|
|
return repo == "go" && onReleaseBranch // See issue 37827.
|
|
|
|
},
|
2019-03-11 21:49:56 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
2020-07-01 21:45:10 +03:00
|
|
|
// Test all repos, ignoring buildRepoByDefault.
|
|
|
|
// For golang.org/x repos, don't test non-latest versions.
|
2019-03-11 21:49:56 +03:00
|
|
|
return repo == "go" || (branch == "master" && goBranch == "master")
|
|
|
|
},
|
2018-05-29 22:03:23 +03:00
|
|
|
env: []string{
|
2019-03-14 19:06:57 +03:00
|
|
|
"GO_TEST_TIMEOUT_SCALE=5", // give them lots of time
|
2018-05-29 22:03:23 +03:00
|
|
|
},
|
2022-07-22 19:04:15 +03:00
|
|
|
numTryTestHelpers: 4, // Target time is < 15 min for go.dev/issue/42661.
|
2018-05-16 22:50:39 +03:00
|
|
|
})
|
2022-11-10 01:12:41 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-amd64-longtest-race",
|
|
|
|
HostType: "host-linux-amd64-bullseye",
|
|
|
|
Notes: "Debian Bullseye with the race detector enabled and go test -short=false",
|
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
2023-03-31 18:27:20 +03:00
|
|
|
// Test all repos, ignoring buildRepoByDefault.
|
|
|
|
// For golang.org/x repos, don't test non-latest versions.
|
|
|
|
return repo == "go" || (branch == "master" && goBranch == "master")
|
2022-11-10 01:12:41 +03:00
|
|
|
},
|
|
|
|
env: []string{
|
|
|
|
"GO_TEST_TIMEOUT_SCALE=5", // Inherited from the longtest builder.
|
|
|
|
},
|
2022-11-23 00:02:00 +03:00
|
|
|
numTryTestHelpers: 4, // Target time is < 15 min for go.dev/issue/56907.
|
2022-11-10 01:12:41 +03:00
|
|
|
})
|
2019-10-21 19:58:47 +03:00
|
|
|
addBuilder(BuildConfig{
|
2019-11-14 18:43:33 +03:00
|
|
|
Name: "linux-386-longtest",
|
2022-07-26 18:46:45 +03:00
|
|
|
HostType: "host-linux-amd64-bullseye",
|
2022-02-09 01:05:00 +03:00
|
|
|
Notes: "Debian Bullseye with go test -short=false; to get 32-bit coverage",
|
2020-05-27 01:19:05 +03:00
|
|
|
tryBot: func(repo, branch, goBranch string) bool {
|
|
|
|
onReleaseBranch := strings.HasPrefix(branch, "release-branch.")
|
|
|
|
return repo == "go" && onReleaseBranch // See issue 37827.
|
|
|
|
},
|
2019-10-21 19:58:47 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
2020-07-01 21:45:10 +03:00
|
|
|
b := buildRepoByDefault(repo)
|
|
|
|
if repo != "go" && !(branch == "master" && goBranch == "master") {
|
|
|
|
// For golang.org/x repos, don't test non-latest versions.
|
|
|
|
b = false
|
2019-12-12 20:43:59 +03:00
|
|
|
}
|
2020-07-01 21:45:10 +03:00
|
|
|
return b
|
2019-10-21 19:58:47 +03:00
|
|
|
},
|
|
|
|
env: []string{
|
2020-05-19 02:34:15 +03:00
|
|
|
"GOARCH=386",
|
|
|
|
"GOHOSTARCH=386",
|
2019-10-21 19:58:47 +03:00
|
|
|
"GO_TEST_TIMEOUT_SCALE=5", // give them lots of time
|
|
|
|
},
|
2022-07-22 19:04:15 +03:00
|
|
|
numTryTestHelpers: 4, // Target time is < 15 min for go.dev/issue/42661.
|
2019-10-21 19:58:47 +03:00
|
|
|
})
|
2022-12-29 20:59:20 +03:00
|
|
|
addBuilder(BuildConfig{
|
2023-01-30 19:40:05 +03:00
|
|
|
Name: "js-wasm-node18",
|
|
|
|
HostType: "host-linux-amd64-js-wasm-node18",
|
|
|
|
tryBot: explicitTrySet("go"),
|
2022-12-29 20:59:20 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
2023-01-05 01:18:59 +03:00
|
|
|
b := buildRepoByDefault(repo) && atLeastGo1(goBranch, 21)
|
2022-12-29 20:59:20 +03:00
|
|
|
switch repo {
|
|
|
|
case "benchmarks", "debug", "perf", "talks", "tools", "tour", "website":
|
|
|
|
// Don't test these golang.org/x repos.
|
|
|
|
b = false
|
|
|
|
}
|
|
|
|
if repo != "go" && !(branch == "master" && goBranch == "master") {
|
|
|
|
// For golang.org/x repos, don't test non-latest versions.
|
|
|
|
b = false
|
|
|
|
}
|
|
|
|
return b
|
|
|
|
},
|
|
|
|
distTestAdjust: func(run bool, distTest string, isNormalTry bool) bool {
|
|
|
|
if isNormalTry && (strings.Contains(distTest, "/internal/") || distTest == "reboot") {
|
|
|
|
// Skip some tests in an attempt to speed up normal trybots, inherited from CL 121938.
|
|
|
|
run = false
|
|
|
|
}
|
|
|
|
return run
|
|
|
|
},
|
|
|
|
numTryTestHelpers: 3,
|
|
|
|
env: []string{
|
|
|
|
"GOOS=js", "GOARCH=wasm", "GOHOSTOS=linux", "GOHOSTARCH=amd64",
|
|
|
|
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/workdir/go/misc/wasm",
|
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
|
|
|
},
|
|
|
|
})
|
2022-12-29 01:40:14 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "openbsd-amd64-72",
|
|
|
|
HostType: "host-openbsd-amd64-72",
|
2023-01-03 18:42:02 +03:00
|
|
|
tryBot: defaultTrySet(),
|
2020-12-21 22:12:25 +03:00
|
|
|
distTestAdjust: noTestDirAndNoReboot,
|
|
|
|
numTryTestHelpers: 4,
|
2020-11-12 20:27:32 +03:00
|
|
|
})
|
2022-12-29 01:40:14 +03:00
|
|
|
addBuilder(BuildConfig{
|
2023-01-03 18:42:02 +03:00
|
|
|
Name: "openbsd-386-72",
|
|
|
|
HostType: "host-openbsd-386-72",
|
|
|
|
tryBot: explicitTrySet("sys"),
|
2022-12-29 01:40:14 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
// https://go.dev/issue/49529: git seems to be too slow on this
|
|
|
|
// platform.
|
|
|
|
return repo != "review" && buildRepoByDefault(repo)
|
|
|
|
},
|
|
|
|
distTestAdjust: noTestDirAndNoReboot,
|
|
|
|
numTryTestHelpers: 4,
|
|
|
|
})
|
2019-08-30 20:09:05 +03:00
|
|
|
addBuilder(BuildConfig{
|
2020-04-16 18:47:53 +03:00
|
|
|
Name: "openbsd-arm-jsing",
|
|
|
|
HostType: "host-openbsd-arm-joelsing",
|
|
|
|
SkipSnapshot: true,
|
2021-12-15 19:40:12 +03:00
|
|
|
FlakyNet: true,
|
2020-04-16 18:47:53 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
switch repo {
|
2020-08-20 21:42:01 +03:00
|
|
|
case "go", "net", "sys":
|
|
|
|
return branch == "master" && goBranch == "master"
|
|
|
|
default:
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
},
|
|
|
|
distTestAdjust: noTestDirAndNoReboot,
|
|
|
|
tryBot: nil,
|
|
|
|
env: []string{
|
|
|
|
// The machine is slow.
|
|
|
|
"GO_TEST_TIMEOUT_SCALE=5",
|
|
|
|
},
|
|
|
|
})
|
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "openbsd-arm64-jsing",
|
|
|
|
HostType: "host-openbsd-arm64-joelsing",
|
|
|
|
SkipSnapshot: true,
|
2021-12-15 19:40:12 +03:00
|
|
|
FlakyNet: true,
|
2020-08-20 21:42:01 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
switch repo {
|
2020-08-23 19:02:40 +03:00
|
|
|
case "go", "net", "sys":
|
|
|
|
return branch == "master" && goBranch == "master"
|
|
|
|
default:
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
},
|
|
|
|
distTestAdjust: noTestDirAndNoReboot,
|
|
|
|
tryBot: nil,
|
|
|
|
env: []string{
|
|
|
|
// The machine is slow.
|
|
|
|
"GO_TEST_TIMEOUT_SCALE=5",
|
|
|
|
},
|
|
|
|
})
|
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "openbsd-mips64-jsing",
|
|
|
|
HostType: "host-openbsd-mips64-joelsing",
|
2023-08-11 17:07:53 +03:00
|
|
|
KnownIssues: []int{36435, 58110, 61546},
|
2020-08-23 19:02:40 +03:00
|
|
|
SkipSnapshot: true,
|
2021-12-15 19:40:12 +03:00
|
|
|
FlakyNet: true,
|
2020-08-23 19:02:40 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
switch repo {
|
2020-04-16 18:47:53 +03:00
|
|
|
case "go", "net", "sys":
|
|
|
|
return branch == "master" && goBranch == "master"
|
|
|
|
default:
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
},
|
2020-04-09 19:47:03 +03:00
|
|
|
distTestAdjust: noTestDirAndNoReboot,
|
|
|
|
tryBot: nil,
|
2019-08-30 20:09:05 +03:00
|
|
|
env: []string{
|
|
|
|
// The machine is slow.
|
|
|
|
"GO_TEST_TIMEOUT_SCALE=5",
|
|
|
|
},
|
|
|
|
})
|
2023-03-06 06:57:16 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "openbsd-ppc64-n2vi",
|
|
|
|
HostType: "host-openbsd-ppc64-n2vi",
|
|
|
|
SkipSnapshot: true,
|
|
|
|
FlakyNet: true,
|
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
switch repo {
|
|
|
|
case "go", "net", "sys":
|
|
|
|
return branch == "master" && goBranch == "master"
|
|
|
|
default:
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
},
|
|
|
|
distTestAdjust: noTestDirAndNoReboot,
|
|
|
|
tryBot: nil,
|
|
|
|
})
|
2023-08-03 09:07:29 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "openbsd-riscv64-jsing",
|
|
|
|
HostType: "host-openbsd-riscv64-joelsing",
|
|
|
|
SkipSnapshot: true,
|
|
|
|
FlakyNet: true,
|
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
switch repo {
|
|
|
|
case "go", "net", "sys":
|
|
|
|
return branch == "master" && goBranch == "master"
|
|
|
|
default:
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
},
|
|
|
|
distTestAdjust: noTestDirAndNoReboot,
|
|
|
|
tryBot: nil,
|
|
|
|
env: []string{
|
|
|
|
// The machine is slow.
|
|
|
|
"GO_TEST_TIMEOUT_SCALE=3",
|
|
|
|
},
|
|
|
|
})
|
2022-11-14 19:11:34 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "netbsd-386-9_3",
|
|
|
|
HostType: "host-netbsd-386-9_3",
|
|
|
|
distTestAdjust: noTestDirAndNoReboot,
|
|
|
|
})
|
2020-04-02 15:55:30 +03:00
|
|
|
addBuilder(BuildConfig{
|
2022-11-14 19:11:34 +03:00
|
|
|
Name: "netbsd-amd64-9_3",
|
|
|
|
HostType: "host-netbsd-amd64-9_3",
|
2020-04-09 19:47:03 +03:00
|
|
|
distTestAdjust: noTestDirAndNoReboot,
|
2022-11-15 19:17:14 +03:00
|
|
|
tryBot: explicitTrySet("sys"),
|
2020-04-02 15:55:30 +03:00
|
|
|
})
|
2021-11-29 19:15:30 +03:00
|
|
|
addBuilder(BuildConfig{
|
2021-11-11 23:45:01 +03:00
|
|
|
Name: "netbsd-arm-bsiegert",
|
|
|
|
HostType: "host-netbsd-arm-bsiegert",
|
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
if repo == "review" {
|
2022-07-22 19:04:15 +03:00
|
|
|
// https://go.dev/issue/49530: This test seems to be too slow even
|
2021-11-11 23:45:01 +03:00
|
|
|
// with a long scale factor.
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
return buildRepoByDefault(repo)
|
|
|
|
},
|
2020-04-09 19:47:03 +03:00
|
|
|
distTestAdjust: noTestDirAndNoReboot,
|
|
|
|
tryBot: nil,
|
2019-03-19 16:28:04 +03:00
|
|
|
env: []string{
|
|
|
|
// The machine is slow.
|
|
|
|
"GO_TEST_TIMEOUT_SCALE=10",
|
|
|
|
},
|
2022-12-02 17:06:40 +03:00
|
|
|
FlakyNet: true,
|
2019-03-19 16:28:04 +03:00
|
|
|
})
|
2020-08-18 21:42:30 +03:00
|
|
|
addBuilder(BuildConfig{
|
2022-02-16 07:54:15 +03:00
|
|
|
Name: "netbsd-arm64-bsiegert",
|
|
|
|
HostType: "host-netbsd-arm64-bsiegert",
|
2020-08-18 21:42:30 +03:00
|
|
|
distTestAdjust: noTestDirAndNoReboot,
|
|
|
|
tryBot: nil,
|
|
|
|
env: []string{
|
|
|
|
// The machine is slow.
|
|
|
|
"GO_TEST_TIMEOUT_SCALE=10",
|
|
|
|
},
|
2022-12-02 17:06:40 +03:00
|
|
|
FlakyNet: true,
|
2020-08-18 21:42:30 +03:00
|
|
|
})
|
2015-01-15 23:46:22 +03:00
|
|
|
addBuilder(BuildConfig{
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
Name: "plan9-386",
|
|
|
|
HostType: "host-plan9-386-gce",
|
2019-04-03 08:03:37 +03:00
|
|
|
numTestHelpers: 1,
|
2019-04-18 22:33:19 +03:00
|
|
|
tryOnly: true, // disable it for now; Issue 31261, Issue 29801
|
2020-04-09 23:24:30 +03:00
|
|
|
distTestAdjust: func(run bool, distTest string, isNormalTry bool) bool {
|
2020-04-09 19:47:03 +03:00
|
|
|
switch distTest {
|
2019-01-19 01:19:58 +03:00
|
|
|
case "api",
|
|
|
|
"go_test:cmd/go": // takes over 20 minutes without working SMP
|
|
|
|
return false
|
|
|
|
}
|
2020-04-09 19:47:03 +03:00
|
|
|
return run
|
2019-01-19 01:19:58 +03:00
|
|
|
},
|
2022-05-26 18:22:04 +03:00
|
|
|
buildsRepo: plan9Default,
|
|
|
|
KnownIssues: []int{29801},
|
2015-01-15 23:46:22 +03:00
|
|
|
})
|
2023-02-16 00:19:24 +03:00
|
|
|
addBuilder(BuildConfig{
|
2023-10-03 23:26:02 +03:00
|
|
|
Name: "windows-386-2016",
|
|
|
|
HostType: "host-windows-amd64-2016",
|
2023-02-23 17:09:59 +03:00
|
|
|
env: []string{"GOARCH=386", "GOHOSTARCH=386"},
|
|
|
|
tryBot: defaultTrySet(),
|
2023-02-17 18:59:10 +03:00
|
|
|
numTryTestHelpers: 4,
|
2023-02-16 00:19:24 +03:00
|
|
|
})
|
2015-02-07 04:32:15 +03:00
|
|
|
addBuilder(BuildConfig{
|
2023-10-03 23:26:02 +03:00
|
|
|
Name: "windows-amd64-2016",
|
|
|
|
HostType: "host-windows-amd64-2016",
|
|
|
|
buildsRepo: defaultPlusExpBuild,
|
2020-04-09 19:47:03 +03:00
|
|
|
distTestAdjust: fasterTrybots,
|
2018-05-01 00:16:33 +03:00
|
|
|
env: []string{
|
|
|
|
"GOARCH=amd64",
|
|
|
|
"GOHOSTARCH=amd64",
|
|
|
|
// cmd/go takes ~188 seconds on windows-amd64
|
|
|
|
// now, which is over the 180 second default
|
|
|
|
// dist test timeout. So, bump this builder
|
|
|
|
// up:
|
|
|
|
"GO_TEST_TIMEOUT_SCALE=2",
|
|
|
|
},
|
2023-10-03 23:26:02 +03:00
|
|
|
tryBot: defaultTrySet(),
|
2017-07-27 07:52:12 +03:00
|
|
|
numTryTestHelpers: 5,
|
2015-02-07 04:32:15 +03:00
|
|
|
})
|
2022-06-21 17:27:54 +03:00
|
|
|
addBuilder(BuildConfig{
|
2022-11-23 17:32:27 +03:00
|
|
|
Name: "windows-amd64-longtest",
|
|
|
|
HostType: "host-windows-amd64-2016-big",
|
2022-06-21 17:27:54 +03:00
|
|
|
Notes: "Windows Server 2016 with go test -short=false",
|
2022-11-23 17:32:27 +03:00
|
|
|
tryBot: func(repo, branch, goBranch string) bool {
|
|
|
|
onReleaseBranch := strings.HasPrefix(branch, "release-branch.")
|
2023-05-03 17:57:09 +03:00
|
|
|
return repo == "go" && onReleaseBranch // See issue 37827.
|
2022-11-23 17:32:27 +03:00
|
|
|
},
|
2022-06-21 17:27:54 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
2023-10-03 23:26:02 +03:00
|
|
|
b := defaultPlusExpBuild(repo, branch, goBranch)
|
2022-06-21 17:27:54 +03:00
|
|
|
if repo != "go" && !(branch == "master" && goBranch == "master") {
|
|
|
|
// For golang.org/x repos, don't test non-latest versions.
|
|
|
|
b = false
|
|
|
|
}
|
|
|
|
return b
|
|
|
|
},
|
|
|
|
env: []string{
|
|
|
|
"GO_TEST_TIMEOUT_SCALE=5", // give them lots of time
|
|
|
|
},
|
2022-11-23 00:02:00 +03:00
|
|
|
numTryTestHelpers: 4, // Target time is < 15 min for go.dev/issue/42661.
|
2022-06-21 17:27:54 +03:00
|
|
|
})
|
|
|
|
addBuilder(BuildConfig{
|
2022-11-23 17:32:27 +03:00
|
|
|
Name: "windows-amd64-race",
|
|
|
|
HostType: "host-windows-amd64-2016",
|
2022-06-21 17:27:54 +03:00
|
|
|
Notes: "Only runs -race tests (./race.bat)",
|
|
|
|
env: []string{
|
|
|
|
"GOARCH=amd64",
|
|
|
|
"GOHOSTARCH=amd64",
|
|
|
|
// cmd/go takes ~188 seconds on windows-amd64
|
|
|
|
// now, which is over the 180 second default
|
|
|
|
// dist test timeout. So, bump this builder
|
|
|
|
// up:
|
|
|
|
"GO_TEST_TIMEOUT_SCALE=2"},
|
|
|
|
})
|
2020-11-20 20:35:33 +03:00
|
|
|
addBuilder(BuildConfig{
|
2020-11-28 17:02:05 +03:00
|
|
|
Name: "windows-arm-zx2c4",
|
|
|
|
HostType: "host-windows-arm64-zx2c4",
|
2020-11-20 20:35:33 +03:00
|
|
|
env: []string{
|
|
|
|
"GOARM=7",
|
2020-12-01 22:06:23 +03:00
|
|
|
"GO_TEST_TIMEOUT_SCALE=3"},
|
2020-11-20 20:35:33 +03:00
|
|
|
})
|
2023-01-04 23:46:55 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "windows-arm64-11",
|
|
|
|
HostType: "host-windows11-arm64-azure",
|
|
|
|
numTryTestHelpers: 1,
|
|
|
|
env: []string{
|
|
|
|
"GOARCH=arm64",
|
|
|
|
// Note: GOMAXPROCS=4 workaround for go.dev/issue/51019
|
|
|
|
// tentatively removed here, since Azure VMs have 3x more
|
|
|
|
// RAM than the previous win11/arm64 machines.
|
|
|
|
},
|
|
|
|
})
|
2019-11-19 17:55:01 +03:00
|
|
|
addBuilder(BuildConfig{
|
2020-04-09 19:47:03 +03:00
|
|
|
Name: "darwin-amd64-10_15",
|
2022-09-22 20:01:05 +03:00
|
|
|
HostType: "host-darwin-amd64-10_15-aws",
|
|
|
|
distTestAdjust: macTestPolicy,
|
2024-02-14 21:56:37 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
return defaultPlusExpBuild(repo, branch, goBranch) && atMostGo1(goBranch, 22)
|
|
|
|
},
|
2022-09-22 20:01:05 +03:00
|
|
|
})
|
2021-01-29 23:47:13 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "darwin-amd64-11_0",
|
2022-11-29 21:41:35 +03:00
|
|
|
HostType: "host-darwin-amd64-11-aws",
|
2022-09-22 20:01:05 +03:00
|
|
|
distTestAdjust: macTestPolicy,
|
|
|
|
buildsRepo: defaultPlusExpBuild,
|
|
|
|
})
|
2019-05-01 01:37:31 +03:00
|
|
|
addBuilder(BuildConfig{
|
2021-11-17 01:09:45 +03:00
|
|
|
Name: "darwin-amd64-12_0",
|
2022-11-29 21:41:35 +03:00
|
|
|
HostType: "host-darwin-amd64-12-aws",
|
2021-11-17 01:09:45 +03:00
|
|
|
distTestAdjust: macTestPolicy,
|
|
|
|
buildsRepo: defaultPlusExpBuild,
|
|
|
|
})
|
2022-11-07 21:19:29 +03:00
|
|
|
addBuilder(BuildConfig{
|
2022-11-29 21:41:35 +03:00
|
|
|
Name: "darwin-amd64-13",
|
2022-11-07 21:19:29 +03:00
|
|
|
HostType: "host-darwin-amd64-13-aws",
|
|
|
|
distTestAdjust: macTestPolicy,
|
|
|
|
buildsRepo: defaultPlusExpBuild,
|
|
|
|
})
|
2021-11-17 01:09:45 +03:00
|
|
|
addBuilder(BuildConfig{
|
2020-04-09 19:47:03 +03:00
|
|
|
Name: "darwin-amd64-nocgo",
|
2022-09-13 23:03:19 +03:00
|
|
|
HostType: "host-darwin-amd64-12-aws",
|
2022-09-22 20:01:05 +03:00
|
|
|
distTestAdjust: noTestDirAndNoReboot,
|
|
|
|
env: []string{"CGO_ENABLED=0"},
|
2022-09-13 23:03:19 +03:00
|
|
|
})
|
2023-03-28 20:40:25 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "darwin-amd64-longtest",
|
|
|
|
HostType: "host-darwin-amd64-13-aws",
|
|
|
|
Notes: "macOS 13 with go test -short=false",
|
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
b := buildRepoByDefault(repo)
|
2023-05-03 17:57:09 +03:00
|
|
|
if repo == "go" && !atLeastGo1(goBranch, 21) {
|
|
|
|
// The builder was added during Go 1.21 dev cycle.
|
|
|
|
// It uncovered some tests that weren't passing and needed to be fixed.
|
|
|
|
// Disable the builder on older release branches unless/until it's decided
|
|
|
|
// that we should backport the needed fixes (and that the older releases
|
|
|
|
// don't have even more that needs fixing before the builder passes fully).
|
|
|
|
b = false
|
|
|
|
}
|
2023-03-28 20:40:25 +03:00
|
|
|
if repo != "go" && !(branch == "master" && goBranch == "master") {
|
|
|
|
// For golang.org/x repos, don't test non-latest versions.
|
|
|
|
b = false
|
|
|
|
}
|
|
|
|
return b
|
|
|
|
},
|
|
|
|
env: []string{
|
2023-06-27 17:29:53 +03:00
|
|
|
// We use a timeout scale value of 5 for most longtest builders
|
|
|
|
// to give them lots of time. This particular builder is not as fast
|
|
|
|
// as the rest, so we give it 2x headroom for a scale value of 10.
|
|
|
|
// See go.dev/issue/60919.
|
|
|
|
"GO_TEST_TIMEOUT_SCALE=10",
|
2023-03-28 20:40:25 +03:00
|
|
|
},
|
|
|
|
})
|
2022-05-13 22:12:21 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "darwin-arm64-11",
|
|
|
|
HostType: "host-darwin-arm64-11",
|
|
|
|
distTestAdjust: macTestPolicy,
|
|
|
|
buildsRepo: defaultPlusExpBuild,
|
|
|
|
})
|
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "darwin-arm64-12",
|
|
|
|
HostType: "host-darwin-arm64-12",
|
2021-11-18 19:31:07 +03:00
|
|
|
distTestAdjust: macTestPolicy,
|
|
|
|
buildsRepo: defaultPlusExpBuild,
|
2020-12-15 20:58:50 +03:00
|
|
|
})
|
2017-01-19 01:45:12 +03:00
|
|
|
addBuilder(BuildConfig{
|
2020-04-09 19:47:03 +03:00
|
|
|
Name: "darwin-amd64-race",
|
2022-09-22 20:01:05 +03:00
|
|
|
HostType: "host-darwin-amd64-12-aws",
|
|
|
|
distTestAdjust: macTestPolicy,
|
|
|
|
buildsRepo: onlyGo,
|
2023-06-01 22:53:05 +03:00
|
|
|
env: []string{
|
|
|
|
// Increase the timeout scale for this builder: it was observed to be
|
|
|
|
// timing out frequently in
|
|
|
|
// https://go.dev/issue/55311#issuecomment-1571986012.
|
2023-06-27 17:29:53 +03:00
|
|
|
//
|
2023-06-01 22:53:05 +03:00
|
|
|
// TODO(bcmills): The darwin-amd64-longtest builder was running extremely
|
|
|
|
// slowly because it was hitting swap. Race-enabled builds are also
|
|
|
|
// memory-hungry — is it possible that the -race builder is also swapping?
|
|
|
|
"GO_TEST_TIMEOUT_SCALE=2",
|
|
|
|
},
|
2022-09-22 20:01:05 +03:00
|
|
|
})
|
2019-05-01 21:33:26 +03:00
|
|
|
addBuilder(BuildConfig{
|
2020-10-03 12:37:07 +03:00
|
|
|
Name: "ios-arm64-corellium",
|
|
|
|
HostType: "host-ios-arm64-corellium-ios",
|
2021-11-16 20:42:29 +03:00
|
|
|
Notes: "Virtual iPhone SE running on Corellium; owned by zenly (github.com/znly)",
|
2019-05-01 21:33:26 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
2019-05-01 23:28:43 +03:00
|
|
|
return repo == "go" && branch == "master" && goBranch == "master"
|
|
|
|
},
|
|
|
|
})
|
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "android-arm64-corellium",
|
|
|
|
HostType: "host-android-arm64-corellium-android",
|
2021-11-16 20:42:29 +03:00
|
|
|
Notes: "Virtual Android running on Corellium; owned by zenly (github.com/znly)",
|
2019-05-01 23:28:43 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
2019-05-01 21:33:26 +03:00
|
|
|
return repo == "go" && branch == "master" && goBranch == "master"
|
|
|
|
},
|
|
|
|
})
|
2019-05-02 01:54:54 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "android-arm-corellium",
|
|
|
|
HostType: "host-android-arm64-corellium-android",
|
2021-11-16 20:42:29 +03:00
|
|
|
Notes: "Virtual Android running on Corellium; owned by zenly (github.com/znly)",
|
2019-05-02 01:54:54 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
return repo == "go" && branch == "master" && goBranch == "master"
|
|
|
|
},
|
|
|
|
env: []string{
|
|
|
|
"CGO_ENABLED=1",
|
|
|
|
"GOARCH=arm",
|
2022-12-05 23:33:01 +03:00
|
|
|
"GO_TEST_TIMEOUT_SCALE=2", // inherited from cmd/dist's default for GOARCH=arm
|
2019-05-02 01:54:54 +03:00
|
|
|
},
|
|
|
|
})
|
2019-02-25 23:35:29 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "android-386-emu",
|
2022-08-03 22:43:12 +03:00
|
|
|
HostType: "host-linux-amd64-androidemu", // same amd64 host is used for 386 builder
|
2022-05-21 00:26:59 +03:00
|
|
|
Notes: "Android emulator on GCE (GOOS=android GOARCH=386)",
|
2019-03-07 20:44:41 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
2022-01-07 23:29:05 +03:00
|
|
|
b := buildRepoByDefault(repo)
|
2019-03-01 19:54:25 +03:00
|
|
|
switch repo {
|
2022-01-07 23:29:05 +03:00
|
|
|
case "mobile":
|
|
|
|
b = true
|
2019-12-12 20:43:59 +03:00
|
|
|
case "build", "blog", "talks", "review", "tour", "website":
|
2022-01-07 23:29:05 +03:00
|
|
|
b = false
|
2023-09-01 22:31:39 +03:00
|
|
|
case "pkgsite":
|
|
|
|
// The pkgsite tests need CL 472096, released in 1.21 to run properly.
|
|
|
|
b = atLeastGo1(goBranch, 21)
|
2019-03-01 19:54:25 +03:00
|
|
|
}
|
2022-01-07 23:29:05 +03:00
|
|
|
return b
|
2019-03-01 19:54:25 +03:00
|
|
|
},
|
2019-02-25 23:35:29 +03:00
|
|
|
env: []string{
|
|
|
|
"GOARCH=386",
|
|
|
|
"GOOS=android",
|
|
|
|
"GOHOSTARCH=amd64",
|
|
|
|
"GOHOSTOS=linux",
|
|
|
|
"CGO_ENABLED=1",
|
|
|
|
},
|
|
|
|
})
|
|
|
|
addBuilder(BuildConfig{
|
2019-04-18 22:45:32 +03:00
|
|
|
Name: "android-amd64-emu",
|
2022-08-03 22:43:12 +03:00
|
|
|
HostType: "host-linux-amd64-androidemu",
|
2022-05-21 00:26:59 +03:00
|
|
|
Notes: "Android emulator on GCE (GOOS=android GOARCH=amd64)",
|
2019-04-18 22:45:32 +03:00
|
|
|
numTryTestHelpers: 3,
|
2019-03-07 20:44:41 +03:00
|
|
|
tryBot: func(repo, branch, goBranch string) bool {
|
2022-05-21 00:26:59 +03:00
|
|
|
// See discussion in go.dev/issue/53377.
|
2019-04-26 17:04:00 +03:00
|
|
|
switch repo {
|
2022-05-21 00:26:59 +03:00
|
|
|
case "mobile":
|
2022-02-16 07:54:15 +03:00
|
|
|
return true
|
2019-04-26 17:04:00 +03:00
|
|
|
}
|
|
|
|
return false
|
2019-02-28 20:32:45 +03:00
|
|
|
},
|
2019-03-07 20:44:41 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
2022-01-07 23:29:05 +03:00
|
|
|
b := buildRepoByDefault(repo)
|
2019-03-01 19:54:25 +03:00
|
|
|
switch repo {
|
2022-01-07 23:29:05 +03:00
|
|
|
case "mobile":
|
|
|
|
b = true
|
2019-12-12 20:43:59 +03:00
|
|
|
case "build", "blog", "talks", "review", "tour", "website":
|
2022-01-07 23:29:05 +03:00
|
|
|
b = false
|
2023-09-01 22:31:39 +03:00
|
|
|
case "pkgsite":
|
|
|
|
// The pkgsite tests need CL 472096, released in 1.21 to run properly.
|
|
|
|
b = atLeastGo1(goBranch, 21)
|
2019-03-01 19:54:25 +03:00
|
|
|
}
|
2022-01-07 23:29:05 +03:00
|
|
|
return b
|
2019-03-01 19:54:25 +03:00
|
|
|
},
|
2019-02-25 23:35:29 +03:00
|
|
|
env: []string{
|
|
|
|
"GOARCH=amd64",
|
|
|
|
"GOOS=android",
|
|
|
|
"GOHOSTARCH=amd64",
|
|
|
|
"GOHOSTOS=linux",
|
|
|
|
"CGO_ENABLED=1",
|
|
|
|
},
|
|
|
|
})
|
2019-10-17 11:48:13 +03:00
|
|
|
addBuilder(BuildConfig{
|
2022-02-16 07:54:15 +03:00
|
|
|
Name: "illumos-amd64",
|
|
|
|
HostType: "host-illumos-amd64-jclulow",
|
2019-10-17 11:48:13 +03:00
|
|
|
})
|
2017-07-07 23:41:20 +03:00
|
|
|
addBuilder(BuildConfig{
|
2023-02-03 23:49:11 +03:00
|
|
|
Name: "solaris-amd64-oraclerel",
|
|
|
|
HostType: "host-solaris-oracle-amd64-oraclerel",
|
|
|
|
Notes: "Oracle Solaris release version",
|
|
|
|
FlakyNet: true,
|
2017-07-07 23:41:20 +03:00
|
|
|
})
|
2016-10-06 23:30:58 +03:00
|
|
|
addBuilder(BuildConfig{
|
2022-08-28 05:20:20 +03:00
|
|
|
Name: "linux-ppc64-sid-buildlet",
|
|
|
|
HostType: "host-linux-ppc64-sid",
|
|
|
|
FlakyNet: true,
|
|
|
|
distTestAdjust: ppc64DistTestPolicy,
|
|
|
|
env: []string{"GO_TEST_TIMEOUT_SCALE=2"}, // see go.dev/issues/44422
|
|
|
|
})
|
2023-04-12 16:46:00 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-ppc64-sid-power10",
|
|
|
|
HostType: "host-linux-ppc64-sid-power10",
|
|
|
|
FlakyNet: true,
|
|
|
|
distTestAdjust: ppc64DistTestPolicy,
|
|
|
|
env: []string{"GO_TEST_TIMEOUT_SCALE=2"}, // see go.dev/issues/44422
|
|
|
|
})
|
2016-03-01 07:49:24 +03:00
|
|
|
addBuilder(BuildConfig{
|
2020-04-09 19:47:03 +03:00
|
|
|
Name: "linux-ppc64le-buildlet",
|
|
|
|
HostType: "host-linux-ppc64le-osu",
|
|
|
|
FlakyNet: true,
|
|
|
|
distTestAdjust: ppc64DistTestPolicy,
|
2022-07-22 19:04:15 +03:00
|
|
|
env: []string{"GO_TEST_TIMEOUT_SCALE=2"}, // see go.dev/issues/44422
|
2016-04-07 22:27:15 +03:00
|
|
|
})
|
2019-02-25 23:05:12 +03:00
|
|
|
addBuilder(BuildConfig{
|
2020-04-09 19:47:03 +03:00
|
|
|
Name: "linux-ppc64le-power9osu",
|
|
|
|
HostType: "host-linux-ppc64le-power9-osu",
|
|
|
|
FlakyNet: true,
|
|
|
|
distTestAdjust: ppc64DistTestPolicy,
|
2022-07-22 19:04:15 +03:00
|
|
|
env: []string{"GO_TEST_TIMEOUT_SCALE=2"}, // see go.dev/issues/44422
|
2019-02-25 23:05:12 +03:00
|
|
|
})
|
2022-12-01 01:50:25 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-ppc64le-power10osu",
|
|
|
|
HostType: "host-linux-ppc64le-power10-osu",
|
|
|
|
FlakyNet: true,
|
|
|
|
distTestAdjust: ppc64DistTestPolicy,
|
|
|
|
env: []string{"GO_TEST_TIMEOUT_SCALE=2"}, // see go.dev/issues/44422
|
|
|
|
})
|
2022-11-01 23:57:01 +03:00
|
|
|
addBuilder(BuildConfig{
|
2022-11-10 22:47:04 +03:00
|
|
|
Name: "linux-arm64",
|
|
|
|
HostType: "host-linux-arm64-bullseye",
|
|
|
|
tryBot: defaultTrySet(),
|
|
|
|
numTryTestHelpers: 1,
|
2022-11-01 23:57:01 +03:00
|
|
|
})
|
2023-06-28 00:36:51 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-arm64-race",
|
|
|
|
HostType: "host-linux-arm64-bullseye",
|
|
|
|
})
|
2022-08-13 15:49:10 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-arm64-boringcrypto",
|
2023-01-04 21:10:17 +03:00
|
|
|
HostType: "host-linux-arm64-bullseye",
|
2022-08-13 15:49:10 +03:00
|
|
|
env: []string{
|
|
|
|
"GOEXPERIMENT=boringcrypto",
|
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1",
|
|
|
|
},
|
|
|
|
})
|
2022-11-23 05:02:38 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-arm64-longtest",
|
2022-11-29 19:51:40 +03:00
|
|
|
HostType: "host-linux-arm64-bullseye-high-disk",
|
2022-11-23 05:02:38 +03:00
|
|
|
Notes: "Debian Bullseye with go test -short=false",
|
2022-12-09 01:54:27 +03:00
|
|
|
tryBot: func(repo, branch, goBranch string) bool {
|
|
|
|
onReleaseBranch := strings.HasPrefix(branch, "release-branch.")
|
|
|
|
return repo == "go" && onReleaseBranch // See issue 37827.
|
|
|
|
},
|
2022-11-23 05:02:38 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
2023-10-03 23:26:02 +03:00
|
|
|
b := buildRepoByDefault(repo)
|
2022-11-23 05:02:38 +03:00
|
|
|
if repo != "go" && !(branch == "master" && goBranch == "master") {
|
|
|
|
// For golang.org/x repos, don't test non-latest versions.
|
|
|
|
b = false
|
|
|
|
}
|
|
|
|
return b
|
|
|
|
},
|
|
|
|
env: []string{
|
|
|
|
"GO_TEST_TIMEOUT_SCALE=5", // give them lots of time
|
|
|
|
},
|
|
|
|
numTryTestHelpers: 4, // Target time is < 15 min for go.dev/issue/42661.
|
|
|
|
})
|
2020-10-08 23:49:48 +03:00
|
|
|
addBuilder(BuildConfig{
|
2021-03-19 20:54:17 +03:00
|
|
|
Name: "linux-arm-aws",
|
|
|
|
HostType: "host-linux-arm-aws",
|
|
|
|
numTryTestHelpers: 1,
|
2021-08-05 18:02:29 +03:00
|
|
|
env: []string{
|
|
|
|
"GOARCH=arm",
|
|
|
|
"GOARM=6",
|
|
|
|
"GOHOSTARCH=arm",
|
2022-03-07 18:11:24 +03:00
|
|
|
"CGO_CFLAGS=-march=armv6",
|
|
|
|
"CGO_LDFLAGS=-march=armv6",
|
2022-12-05 23:33:01 +03:00
|
|
|
"GO_TEST_TIMEOUT_SCALE=2", // inherited from cmd/dist's default for GOARCH=arm
|
2021-08-05 18:02:29 +03:00
|
|
|
},
|
2020-10-08 23:49:48 +03:00
|
|
|
})
|
2021-09-02 10:51:28 +03:00
|
|
|
addBuilder(BuildConfig{
|
2022-12-29 01:48:13 +03:00
|
|
|
FlakyNet: true,
|
|
|
|
HostType: "host-linux-loong64-3a5000",
|
|
|
|
Name: "linux-loong64-3a5000",
|
|
|
|
SkipSnapshot: true,
|
|
|
|
distTestAdjust: func(run bool, distTest string, isNormalTry bool) bool {
|
|
|
|
switch distTest {
|
|
|
|
case "api", "reboot":
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
return run
|
|
|
|
},
|
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
switch repo {
|
2022-12-29 01:56:57 +03:00
|
|
|
case "go":
|
2023-10-03 23:26:02 +03:00
|
|
|
return true
|
2023-02-06 03:39:18 +03:00
|
|
|
case "arch", "net", "sys":
|
2023-10-03 23:26:02 +03:00
|
|
|
return branch == "master"
|
2022-12-29 01:48:13 +03:00
|
|
|
default:
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
},
|
2022-05-25 10:55:11 +03:00
|
|
|
privateGoProxy: true, // this builder is behind firewall
|
2021-09-02 10:51:28 +03:00
|
|
|
env: []string{
|
|
|
|
"GOARCH=loong64",
|
|
|
|
"GOHOSTARCH=loong64",
|
|
|
|
},
|
|
|
|
})
|
2019-10-29 23:35:07 +03:00
|
|
|
addBuilder(BuildConfig{
|
2020-04-09 19:47:03 +03:00
|
|
|
FlakyNet: true,
|
|
|
|
HostType: "host-linux-mips64le-rtrk",
|
|
|
|
Name: "linux-mips64le-rtrk",
|
|
|
|
SkipSnapshot: true,
|
|
|
|
distTestAdjust: mipsDistTestPolicy,
|
|
|
|
buildsRepo: mipsBuildsRepoPolicy,
|
2019-10-29 23:35:07 +03:00
|
|
|
env: []string{
|
|
|
|
"GOARCH=mips64le",
|
|
|
|
"GOHOSTARCH=mips64le",
|
2022-12-05 23:33:01 +03:00
|
|
|
"GO_TEST_TIMEOUT_SCALE=4", // inherited from cmd/dist's default for GOARCH=mips{,le,64,64le}
|
2019-10-29 23:35:07 +03:00
|
|
|
},
|
|
|
|
})
|
|
|
|
addBuilder(BuildConfig{
|
2020-04-09 19:47:03 +03:00
|
|
|
FlakyNet: true,
|
|
|
|
HostType: "host-linux-mips64le-rtrk",
|
|
|
|
Name: "linux-mipsle-rtrk",
|
|
|
|
SkipSnapshot: true,
|
|
|
|
distTestAdjust: mipsDistTestPolicy,
|
|
|
|
buildsRepo: mipsBuildsRepoPolicy,
|
2019-10-29 23:35:07 +03:00
|
|
|
env: []string{
|
|
|
|
"GOARCH=mipsle",
|
|
|
|
"GOHOSTARCH=mipsle",
|
2022-12-05 23:33:01 +03:00
|
|
|
"GO_TEST_TIMEOUT_SCALE=4", // inherited from cmd/dist's default for GOARCH=mips{,le,64,64le}
|
2019-10-29 23:35:07 +03:00
|
|
|
},
|
|
|
|
})
|
|
|
|
addBuilder(BuildConfig{
|
2020-04-09 19:47:03 +03:00
|
|
|
FlakyNet: true,
|
|
|
|
HostType: "host-linux-mips64-rtrk",
|
|
|
|
Name: "linux-mips64-rtrk",
|
|
|
|
SkipSnapshot: true,
|
|
|
|
distTestAdjust: mipsDistTestPolicy,
|
|
|
|
buildsRepo: mipsBuildsRepoPolicy,
|
2019-10-29 23:35:07 +03:00
|
|
|
env: []string{
|
|
|
|
"GOARCH=mips64",
|
|
|
|
"GOHOSTARCH=mips64",
|
2022-12-05 23:33:01 +03:00
|
|
|
"GO_TEST_TIMEOUT_SCALE=4", // inherited from cmd/dist's default for GOARCH=mips{,le,64,64le}
|
2019-10-29 23:35:07 +03:00
|
|
|
},
|
|
|
|
})
|
|
|
|
addBuilder(BuildConfig{
|
2020-04-09 19:47:03 +03:00
|
|
|
FlakyNet: true,
|
|
|
|
HostType: "host-linux-mips64-rtrk",
|
|
|
|
Name: "linux-mips-rtrk",
|
|
|
|
SkipSnapshot: true,
|
|
|
|
distTestAdjust: mipsDistTestPolicy,
|
|
|
|
buildsRepo: mipsBuildsRepoPolicy,
|
2019-10-29 23:35:07 +03:00
|
|
|
env: []string{
|
|
|
|
"GOARCH=mips",
|
|
|
|
"GOHOSTARCH=mips",
|
2022-12-05 23:33:01 +03:00
|
|
|
"GO_TEST_TIMEOUT_SCALE=4", // inherited from cmd/dist's default for GOARCH=mips{,le,64,64le}
|
2019-09-10 02:21:11 +03:00
|
|
|
},
|
2020-09-27 21:25:41 +03:00
|
|
|
})
|
|
|
|
addBuilder(BuildConfig{
|
2021-09-01 10:08:03 +03:00
|
|
|
HostType: "host-linux-riscv64-joelsing",
|
|
|
|
Name: "linux-riscv64-jsing",
|
|
|
|
SkipSnapshot: true,
|
2021-12-15 19:40:12 +03:00
|
|
|
FlakyNet: true,
|
2021-09-01 10:08:03 +03:00
|
|
|
env: []string{"GO_TEST_TIMEOUT_SCALE=4"},
|
|
|
|
distTestAdjust: riscvDistTestPolicy,
|
2020-09-27 21:25:41 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
switch repo {
|
|
|
|
case "go", "net", "sys":
|
2019-11-12 09:19:21 +03:00
|
|
|
return branch == "master" && goBranch == "master"
|
|
|
|
default:
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
},
|
|
|
|
})
|
2021-08-27 07:26:14 +03:00
|
|
|
addBuilder(BuildConfig{
|
2021-09-01 10:08:03 +03:00
|
|
|
HostType: "host-linux-riscv64-unmatched",
|
|
|
|
Name: "linux-riscv64-unmatched",
|
2022-07-14 14:01:17 +03:00
|
|
|
env: []string{"GO_TEST_TIMEOUT_SCALE=4"},
|
2021-09-01 10:08:03 +03:00
|
|
|
FlakyNet: true,
|
|
|
|
distTestAdjust: riscvDistTestPolicy,
|
2022-04-28 17:24:01 +03:00
|
|
|
privateGoProxy: true, // this builder is behind firewall
|
2022-07-14 14:01:17 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
// see https://go.dev/issue/53745
|
|
|
|
if repo == "perf" {
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
return onlyMasterDefault(repo, branch, goBranch)
|
|
|
|
},
|
2021-08-27 07:26:14 +03:00
|
|
|
})
|
2016-03-01 07:49:24 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-s390x-ibm",
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
HostType: "host-linux-s390x",
|
cmd/coordinator, dashboard: remove some trybots, shard others wider
I'm aiming to have trybot runs finish in under 5 minutes.
This CL removes openbsd-386-gce58 and freebsd-386-gce101 from the trybot set.
openbsd-386-gce58 is the slowest builder. It has an average speed of
722 seconds (and 95 percentile of 923 seconds) over the past week, and
that's sharded over 4 machines. Too slow. It's not worth the resources
to keep it as a trybot. It hasn't caught any interesting bugs. This
builder will still run, but not as a pre-submit trybot.
freebsd-386-gce101 is not slow, but we're removing it to shift its
resources to shard other builders wider.
The coordinator now supports varying the build sharding width based on
whether a build is for a trybot or not. This CL defines separate
numbers for each, sharding builds wider as needed for some trybots.
freebsd-amd64-gce101 goes from 4 to 5 machines in try runs, and down
to 3 when not in try runs.
linux-amd64-race gets one more machine during try runs, and one fewer
in regular runs.
linux-arm goes from 7 machines always, to 3 or 8, depending on whether
it's a try run.
openbsd-amd64-58 goes from 4 to 3 or 6.
windows-amd64-gce goes from 4 to 2 or 6.
windows-amd64-race goes from 4 to 2 or 6.
darwin-amd64-10_11 goes from 3 to 3 or 4.
I'll see how these do over the next few days and readjust as needed.
Also in this CL: fix the constants for the expected duration of
make.bash, which impact when we schedule the creation of test sharding
helper buildlets. We were creating them too early before, wasting
resources.
Change-Id: I38a9b24841e196f1eb668de058c49af8c1d1c64f
Reviewed-on: https://go-review.googlesource.com/29116
Reviewed-by: Quentin Smith <quentin@golang.org>
2016-09-14 01:45:48 +03:00
|
|
|
numTestHelpers: 0,
|
2021-12-15 19:40:12 +03:00
|
|
|
FlakyNet: true,
|
2023-08-29 12:06:02 +03:00
|
|
|
env: []string{"GO_TEST_TIMEOUT_SCALE=5"},
|
2016-03-01 07:49:24 +03:00
|
|
|
})
|
2023-05-05 07:52:57 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-s390x-ibm-race",
|
|
|
|
HostType: "host-linux-s390x",
|
|
|
|
Notes: "Only runs -race tests (./race.bash)",
|
|
|
|
FlakyNet: true,
|
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
return repo == "go" && goBranch == "master"
|
|
|
|
},
|
2023-08-29 10:09:07 +03:00
|
|
|
env: []string{"GO_TEST_TIMEOUT_SCALE=5"},
|
2023-05-05 07:52:57 +03:00
|
|
|
})
|
2016-08-30 23:32:33 +03:00
|
|
|
addBuilder(BuildConfig{
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
Name: "linux-s390x-crosscompile",
|
2022-07-29 05:41:47 +03:00
|
|
|
HostType: "host-linux-amd64-s390x-cross",
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
Notes: "s390x cross-compile builder for releases; doesn't run tests",
|
|
|
|
CompileOnly: true,
|
2019-03-07 20:44:41 +03:00
|
|
|
tryOnly: true, // but not in trybot set for now
|
2016-08-30 23:32:33 +03:00
|
|
|
env: []string{
|
|
|
|
"CGO_ENABLED=1",
|
|
|
|
"GOARCH=s390x",
|
|
|
|
"GOHOSTARCH=amd64",
|
|
|
|
"CC_FOR_TARGET=s390x-linux-gnu-gcc",
|
|
|
|
},
|
|
|
|
})
|
cmd/coordinator, cmd/buildlet, cmd/gomote: add SSH support
This adds an SSH server to farmer.golang.org on port 2222 that proxies
SSH connections to users' gomote-created buildlet instances.
For example:
$ gomote create openbsd-amd64-60
user-bradfitz-openbsd-amd64-60-1
$ gomote ssh user-bradfitz-openbsd-amd64-60-1
Warning: Permanently added '[localhost]:33351' (ECDSA) to the list of known hosts.
OpenBSD 6.0 (GENERIC.MP) golang/go#2319: Tue Jul 26 13:00:43 MDT 2016
Welcome to OpenBSD: The proactively secure Unix-like operating system.
Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code. With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.
$
As before, if the coordinator process is restarted (or crashes, is
evicted, etc), all gomote instances die.
Not yet supported:
* scp (help wanted)
* not all host types are configured. most are. some will need slight
config tweaks to the Docker image (e.g. adding openssh-server)
Supports currently:
* linux-amd64 (host type shared by 386, nacl)
* linux-arm
* linux-arm64
* darwin
* freebsd
* openbsd
* plan9-386
* windows
Implementation details:
* the ssh server process listens on port 2222 in the coordinator
(farmer.golang.org), which is behind a GKE TCP load balancer.
* the ssh server library is github.com/gliderlabs/ssh
* authentication is done via Github users' public keys. It's assumed
that gomote user == github user. But there's a mapping in the code
for known exceptions.
* we can't give out access to this too widely. too many things are
accessible from within the host environment if you look in the right
places. Details omitted. But the Go team and other trusted gomote
users can use this.
* the buildlet binary has a new /connect-ssh handler that acts like a
CONNECT request but instead of taking an explicit host:port, just
says "give me your machine's SSH connection". The buildlet can also
start sshd if needed for the environment. The /connect-ssh handler
also installs the coordinator's public key.
* a new buildlet client library method "ConnectSSH" hits the /connect-ssh
handler and returns a net.Conn.
* the coordinator's ssh.Handler is just running the OpenSSH ssh client.
* because the OpenSSH ssh child process can't connect to a net.Conn,
an emphemeral localhost port is created on the coordinator to proxy
between the ssh client and the net.Conn returned by ConnectSSH.
* The /connect-ssh handler requires http.Hijacker, which requires
fully compliant net.Conn implementations as of Go 1.8. So I needed
to flesh out revdial too, testing it with the
golang.org/x/net/nettest package.
* plan9 doesn't have an ssh server, so we use 0intro's new conterm
program (drawterm without GUI support) to connect to plan9 from the
coordinator ssh proxy instead of using the OpenSSH ssh client
binary.
* windows doesn't have an ssh server, so we enable the telnet service
and the coordinator ssh proxy uses telnet instead on the backend
on the private network. (There is a Windows ssh server but only in
new versions.)
Happy debugging over ssh!
Fixes golang/go#19956
Change-Id: I80a62064c5f85af1f195f980c862ba29af4015f0
Reviewed-on: https://go-review.googlesource.com/50750
Reviewed-by: Herbie Ong <herbie@google.com>
Reviewed-by: Jessie Frazelle <me@jessfraz.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-07-22 22:15:56 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "linux-amd64-localdev",
|
|
|
|
HostType: "host-linux-amd64-localdev",
|
|
|
|
Notes: "for localhost development only",
|
2019-03-07 20:44:41 +03:00
|
|
|
tryOnly: true,
|
cmd/coordinator, cmd/buildlet, cmd/gomote: add SSH support
This adds an SSH server to farmer.golang.org on port 2222 that proxies
SSH connections to users' gomote-created buildlet instances.
For example:
$ gomote create openbsd-amd64-60
user-bradfitz-openbsd-amd64-60-1
$ gomote ssh user-bradfitz-openbsd-amd64-60-1
Warning: Permanently added '[localhost]:33351' (ECDSA) to the list of known hosts.
OpenBSD 6.0 (GENERIC.MP) golang/go#2319: Tue Jul 26 13:00:43 MDT 2016
Welcome to OpenBSD: The proactively secure Unix-like operating system.
Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code. With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.
$
As before, if the coordinator process is restarted (or crashes, is
evicted, etc), all gomote instances die.
Not yet supported:
* scp (help wanted)
* not all host types are configured. most are. some will need slight
config tweaks to the Docker image (e.g. adding openssh-server)
Supports currently:
* linux-amd64 (host type shared by 386, nacl)
* linux-arm
* linux-arm64
* darwin
* freebsd
* openbsd
* plan9-386
* windows
Implementation details:
* the ssh server process listens on port 2222 in the coordinator
(farmer.golang.org), which is behind a GKE TCP load balancer.
* the ssh server library is github.com/gliderlabs/ssh
* authentication is done via Github users' public keys. It's assumed
that gomote user == github user. But there's a mapping in the code
for known exceptions.
* we can't give out access to this too widely. too many things are
accessible from within the host environment if you look in the right
places. Details omitted. But the Go team and other trusted gomote
users can use this.
* the buildlet binary has a new /connect-ssh handler that acts like a
CONNECT request but instead of taking an explicit host:port, just
says "give me your machine's SSH connection". The buildlet can also
start sshd if needed for the environment. The /connect-ssh handler
also installs the coordinator's public key.
* a new buildlet client library method "ConnectSSH" hits the /connect-ssh
handler and returns a net.Conn.
* the coordinator's ssh.Handler is just running the OpenSSH ssh client.
* because the OpenSSH ssh child process can't connect to a net.Conn,
an emphemeral localhost port is created on the coordinator to proxy
between the ssh client and the net.Conn returned by ConnectSSH.
* The /connect-ssh handler requires http.Hijacker, which requires
fully compliant net.Conn implementations as of Go 1.8. So I needed
to flesh out revdial too, testing it with the
golang.org/x/net/nettest package.
* plan9 doesn't have an ssh server, so we use 0intro's new conterm
program (drawterm without GUI support) to connect to plan9 from the
coordinator ssh proxy instead of using the OpenSSH ssh client
binary.
* windows doesn't have an ssh server, so we enable the telnet service
and the coordinator ssh proxy uses telnet instead on the backend
on the private network. (There is a Windows ssh server but only in
new versions.)
Happy debugging over ssh!
Fixes golang/go#19956
Change-Id: I80a62064c5f85af1f195f980c862ba29af4015f0
Reviewed-on: https://go-review.googlesource.com/50750
Reviewed-by: Herbie Ong <herbie@google.com>
Reviewed-by: Jessie Frazelle <me@jessfraz.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-07-22 22:15:56 +03:00
|
|
|
})
|
2017-08-06 01:56:18 +03:00
|
|
|
addBuilder(BuildConfig{
|
2022-08-03 00:35:37 +03:00
|
|
|
Name: "dragonfly-amd64-622",
|
|
|
|
HostType: "host-dragonfly-amd64-622",
|
|
|
|
Notes: "DragonFly BSD 6.2.2, running on GCE",
|
|
|
|
SkipSnapshot: true,
|
2017-08-06 01:56:18 +03:00
|
|
|
})
|
|
|
|
addBuilder(BuildConfig{
|
2020-04-09 19:47:03 +03:00
|
|
|
Name: "freebsd-arm-paulzhol",
|
|
|
|
HostType: "host-freebsd-arm-paulzhol",
|
|
|
|
distTestAdjust: noTestDirAndNoReboot,
|
|
|
|
SkipSnapshot: true,
|
2021-12-15 19:40:12 +03:00
|
|
|
FlakyNet: true,
|
2019-03-07 20:44:41 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
// This was a fragile little machine with limited memory.
|
|
|
|
// Only run a few of the core subrepos for now while
|
|
|
|
// we figure out what's killing it.
|
|
|
|
switch repo {
|
|
|
|
case "go", "sys", "net":
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
return false
|
|
|
|
},
|
2017-08-06 01:56:18 +03:00
|
|
|
env: []string{
|
|
|
|
"GOARM=7",
|
|
|
|
"CGO_ENABLED=1",
|
2022-12-06 21:37:09 +03:00
|
|
|
"GO_TEST_TIMEOUT_SCALE=8", // from builder's local environment as of 2022-12-06
|
2017-08-06 01:56:18 +03:00
|
|
|
},
|
|
|
|
})
|
2019-10-03 15:56:19 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "freebsd-arm64-dmgk",
|
|
|
|
HostType: "host-freebsd-arm64-dmgk",
|
|
|
|
})
|
2022-08-26 22:41:14 +03:00
|
|
|
addBuilder(BuildConfig{
|
2022-10-03 09:17:36 +03:00
|
|
|
Name: "freebsd-riscv64-unmatched",
|
|
|
|
HostType: "host-freebsd-riscv64-unmatched",
|
|
|
|
env: []string{"GO_TEST_TIMEOUT_SCALE=4"},
|
|
|
|
FlakyNet: true,
|
|
|
|
distTestAdjust: riscvDistTestPolicy,
|
|
|
|
privateGoProxy: true, // this builder is behind firewall
|
|
|
|
SkipSnapshot: true, // The builder has a slow uplink bandwidth.
|
2022-12-09 22:07:32 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
// see https://go.dev/issue/53745
|
|
|
|
if repo == "perf" {
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
return onlyMasterDefault(repo, branch, goBranch)
|
|
|
|
},
|
2022-08-26 22:41:14 +03:00
|
|
|
})
|
2017-08-06 18:57:06 +03:00
|
|
|
addBuilder(BuildConfig{
|
2020-04-09 19:47:03 +03:00
|
|
|
Name: "plan9-arm",
|
|
|
|
HostType: "host-plan9-arm-0intro",
|
|
|
|
distTestAdjust: noTestDirAndNoReboot,
|
2021-11-10 19:28:50 +03:00
|
|
|
buildsRepo: plan9Default,
|
2022-05-26 18:18:36 +03:00
|
|
|
KnownIssues: []int{49338},
|
2022-12-06 21:37:09 +03:00
|
|
|
env: []string{
|
|
|
|
"GO_TEST_TIMEOUT_SCALE=3", // from builder's local environment as of 2022-12-06
|
|
|
|
},
|
2017-08-06 18:57:06 +03:00
|
|
|
})
|
|
|
|
addBuilder(BuildConfig{
|
2021-04-05 21:42:05 +03:00
|
|
|
Name: "plan9-amd64-0intro",
|
2019-11-22 22:19:11 +03:00
|
|
|
HostType: "host-plan9-amd64-0intro",
|
2020-04-09 23:24:30 +03:00
|
|
|
distTestAdjust: func(run bool, distTest string, isNormalTry bool) bool {
|
|
|
|
run = noTestDirAndNoReboot(run, distTest, isNormalTry)
|
2020-04-09 19:47:03 +03:00
|
|
|
switch distTest {
|
2019-05-08 20:42:00 +03:00
|
|
|
case "api",
|
|
|
|
"go_test:cmd/go": // takes over 20 minutes without working SMP
|
|
|
|
return false
|
|
|
|
}
|
2020-04-09 19:47:03 +03:00
|
|
|
return run
|
2019-05-08 20:42:00 +03:00
|
|
|
},
|
2022-05-26 18:22:04 +03:00
|
|
|
buildsRepo: plan9Default,
|
|
|
|
KnownIssues: []int{49756, 49327},
|
2017-08-06 18:57:06 +03:00
|
|
|
})
|
2019-05-09 19:52:40 +03:00
|
|
|
addBuilder(BuildConfig{
|
2019-11-22 22:19:11 +03:00
|
|
|
Name: "plan9-386-0intro",
|
|
|
|
HostType: "host-plan9-386-0intro",
|
2020-04-09 23:24:30 +03:00
|
|
|
distTestAdjust: func(run bool, distTest string, isNormalTry bool) bool {
|
|
|
|
run = noTestDirAndNoReboot(run, distTest, isNormalTry)
|
2020-04-09 19:47:03 +03:00
|
|
|
switch distTest {
|
2019-05-09 19:52:40 +03:00
|
|
|
case "api",
|
|
|
|
"go_test:cmd/go": // takes over 20 minutes without working SMP
|
|
|
|
return false
|
|
|
|
}
|
2020-04-09 19:47:03 +03:00
|
|
|
return run
|
2019-05-09 19:52:40 +03:00
|
|
|
},
|
2022-05-26 18:22:04 +03:00
|
|
|
buildsRepo: plan9Default,
|
|
|
|
KnownIssues: []int{50137, 50878},
|
2019-05-09 19:52:40 +03:00
|
|
|
})
|
2018-08-24 21:41:05 +03:00
|
|
|
addBuilder(BuildConfig{
|
2022-02-16 07:54:15 +03:00
|
|
|
Name: "aix-ppc64",
|
|
|
|
HostType: "host-aix-ppc64-osuosl",
|
2018-12-04 17:46:08 +03:00
|
|
|
env: []string{
|
|
|
|
"PATH=/opt/freeware/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java7_64/jre/bin:/usr/java7_64/bin",
|
|
|
|
},
|
2019-04-19 17:37:11 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
|
|
|
switch repo {
|
2023-07-10 20:06:12 +03:00
|
|
|
case "vulndb", "vuln", "pkgsite":
|
|
|
|
// vulndb and pkgsite currently use a dependency which does not build cleanly
|
|
|
|
// on aix-ppc64. Until that issue is resolved, skip vulndb on this builder.
|
2022-07-22 19:04:15 +03:00
|
|
|
// (https://go.dev/issue/49218).
|
2021-11-01 20:57:34 +03:00
|
|
|
return false
|
2019-04-19 17:37:11 +03:00
|
|
|
}
|
2021-02-19 20:17:28 +03:00
|
|
|
return buildRepoByDefault(repo)
|
2019-04-19 17:37:11 +03:00
|
|
|
},
|
2018-08-24 21:41:05 +03:00
|
|
|
})
|
2020-11-24 19:44:38 +03:00
|
|
|
addBuilder(BuildConfig{
|
2022-04-28 17:24:01 +03:00
|
|
|
Name: "linux-amd64-wsl",
|
|
|
|
HostType: "host-linux-amd64-wsl",
|
|
|
|
Notes: "Windows 10 WSL2 Ubuntu",
|
|
|
|
FlakyNet: true,
|
|
|
|
SkipSnapshot: true, // The builder has a slow uplink bandwidth.
|
|
|
|
privateGoProxy: true, // this builder is behind firewall
|
2020-11-24 19:44:38 +03:00
|
|
|
})
|
2021-10-01 21:59:33 +03:00
|
|
|
addBuilder(BuildConfig{
|
2021-11-05 22:01:27 +03:00
|
|
|
Name: "linux-amd64-perf",
|
|
|
|
HostType: "host-linux-amd64-perf",
|
|
|
|
Notes: "Performance testing for linux-amd64",
|
2021-10-01 21:59:33 +03:00
|
|
|
buildsRepo: func(repo, branch, goBranch string) bool {
|
2022-10-12 23:20:35 +03:00
|
|
|
if repo == "benchmarks" {
|
|
|
|
// Benchmark the main Go repo.
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
if repo == "tools" {
|
|
|
|
// Benchmark x/tools.
|
|
|
|
//
|
|
|
|
// When benchmarking subrepos, we ignore the Go
|
|
|
|
// commit and always use the most recent Go
|
|
|
|
// release, meaning we get identical duplicate
|
|
|
|
// runs for each Go commit that runs at the
|
|
|
|
// same subrepo commit.
|
|
|
|
//
|
|
|
|
// Limit to running on release branches since
|
|
|
|
// they have far fewer Go commits than tip,
|
2023-04-27 15:38:21 +03:00
|
|
|
// thus reducing the number of duplicate
|
2022-10-12 23:20:35 +03:00
|
|
|
// runs.
|
|
|
|
return strings.HasPrefix(goBranch, "release-branch.")
|
|
|
|
}
|
|
|
|
return false
|
2021-10-01 21:59:33 +03:00
|
|
|
},
|
2021-11-05 22:01:27 +03:00
|
|
|
RunBench: true,
|
|
|
|
SkipSnapshot: true,
|
2021-10-01 21:59:33 +03:00
|
|
|
})
|
2023-03-24 04:40:06 +03:00
|
|
|
addBuilder(BuildConfig{
|
2023-07-25 20:24:16 +03:00
|
|
|
Name: "wasip1-wasm-wazero",
|
|
|
|
HostType: "host-linux-amd64-wasip1-wasm-wazero",
|
|
|
|
buildsRepo: wasip1Default,
|
2023-03-24 07:20:10 +03:00
|
|
|
distTestAdjust: func(run bool, distTest string, isNormalTry bool) bool {
|
|
|
|
if isNormalTry && (strings.Contains(distTest, "/internal/") || distTest == "reboot") {
|
|
|
|
// Skip some tests in an attempt to speed up normal trybots, inherited from CL 121938.
|
|
|
|
run = false
|
|
|
|
}
|
|
|
|
return run
|
|
|
|
},
|
|
|
|
numTryTestHelpers: 3,
|
|
|
|
env: []string{
|
|
|
|
"GOOS=wasip1", "GOARCH=wasm", "GOHOSTOS=linux", "GOHOSTARCH=amd64",
|
|
|
|
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/workdir/go/misc/wasm",
|
2023-07-26 02:10:15 +03:00
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1", "GOWASIRUNTIME=wazero",
|
2023-03-24 07:20:10 +03:00
|
|
|
},
|
|
|
|
})
|
|
|
|
addBuilder(BuildConfig{
|
2023-07-13 21:22:13 +03:00
|
|
|
Name: "wasip1-wasm-wasmtime",
|
|
|
|
HostType: "host-linux-amd64-wasip1-wasm-wasmtime",
|
|
|
|
tryBot: explicitTrySet("go"),
|
|
|
|
buildsRepo: wasip1Default,
|
2023-03-24 04:40:06 +03:00
|
|
|
distTestAdjust: func(run bool, distTest string, isNormalTry bool) bool {
|
|
|
|
if isNormalTry && (strings.Contains(distTest, "/internal/") || distTest == "reboot") {
|
|
|
|
// Skip some tests in an attempt to speed up normal trybots, inherited from CL 121938.
|
|
|
|
run = false
|
|
|
|
}
|
|
|
|
return run
|
|
|
|
},
|
|
|
|
numTryTestHelpers: 3,
|
|
|
|
env: []string{
|
|
|
|
"GOOS=wasip1", "GOARCH=wasm", "GOHOSTOS=linux", "GOHOSTARCH=amd64",
|
|
|
|
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/workdir/go/misc/wasm",
|
2023-04-18 08:27:05 +03:00
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1", "GOWASIRUNTIME=wasmtime",
|
2023-03-24 04:40:06 +03:00
|
|
|
},
|
|
|
|
})
|
2023-05-09 08:14:53 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "wasip1-wasm-wasmer",
|
|
|
|
HostType: "host-linux-amd64-wasip1-wasm-wasmer",
|
|
|
|
KnownIssues: []int{59907},
|
2023-07-13 21:22:13 +03:00
|
|
|
buildsRepo: wasip1Default,
|
2023-05-09 08:14:53 +03:00
|
|
|
distTestAdjust: func(run bool, distTest string, isNormalTry bool) bool {
|
|
|
|
if isNormalTry && (strings.Contains(distTest, "/internal/") || distTest == "reboot") {
|
|
|
|
// Skip some tests in an attempt to speed up normal trybots, inherited from CL 121938.
|
|
|
|
run = false
|
|
|
|
}
|
|
|
|
return run
|
|
|
|
},
|
|
|
|
numTryTestHelpers: 3,
|
|
|
|
env: []string{
|
|
|
|
"GOOS=wasip1", "GOARCH=wasm", "GOHOSTOS=linux", "GOHOSTARCH=amd64",
|
|
|
|
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/workdir/go/misc/wasm",
|
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1", "GOWASIRUNTIME=wasmer",
|
|
|
|
},
|
|
|
|
})
|
2023-05-10 06:27:24 +03:00
|
|
|
addBuilder(BuildConfig{
|
|
|
|
Name: "wasip1-wasm-wasmedge",
|
|
|
|
HostType: "host-linux-amd64-wasip1-wasm-wasmedge",
|
|
|
|
KnownIssues: []int{60097},
|
2023-07-13 21:22:13 +03:00
|
|
|
buildsRepo: wasip1Default,
|
2023-05-10 06:27:24 +03:00
|
|
|
distTestAdjust: func(run bool, distTest string, isNormalTry bool) bool {
|
|
|
|
if isNormalTry && (strings.Contains(distTest, "/internal/") || distTest == "reboot") {
|
|
|
|
// Skip some tests in an attempt to speed up normal trybots, inherited from CL 121938.
|
|
|
|
run = false
|
|
|
|
}
|
|
|
|
return run
|
|
|
|
},
|
|
|
|
numTryTestHelpers: 3,
|
|
|
|
env: []string{
|
|
|
|
"GOOS=wasip1", "GOARCH=wasm", "GOHOSTOS=linux", "GOHOSTARCH=amd64",
|
|
|
|
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/workdir/go/misc/wasm",
|
|
|
|
"GO_DISABLE_OUTBOUND_NETWORK=1", "GOWASIRUNTIME=wasmedge",
|
|
|
|
},
|
|
|
|
})
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
}
|
2016-08-30 23:32:33 +03:00
|
|
|
|
2021-11-16 20:42:29 +03:00
|
|
|
// addBuilder adds c to the Builders map after doing some checks.
|
2015-01-15 23:46:22 +03:00
|
|
|
func addBuilder(c BuildConfig) {
|
|
|
|
if c.Name == "" {
|
|
|
|
panic("empty name")
|
|
|
|
}
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
if c.HostType == "" {
|
|
|
|
panic(fmt.Sprintf("missing HostType for builder %q", c.Name))
|
|
|
|
}
|
2015-01-15 23:46:22 +03:00
|
|
|
if _, dup := Builders[c.Name]; dup {
|
2017-08-06 18:57:06 +03:00
|
|
|
panic("dup name " + c.Name)
|
2015-01-15 23:46:22 +03:00
|
|
|
}
|
2022-10-04 23:42:12 +03:00
|
|
|
if c.HostConfig().GoogleReverse && !c.IsReverse() {
|
|
|
|
panic("GoogleReverse is set but the builder isn't reverse")
|
|
|
|
}
|
all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".
Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.
Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):
linux-amd64
linux-amd64-race
linux-386
linux-386-387
And these are the same host type (a GCE VM):
windows-amd64-gce
windows-amd64-race
windows-386-gce
This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.
Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.
Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.
gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.
This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.
Updates golang/go#17104
Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 00:27:37 +03:00
|
|
|
if _, ok := Hosts[c.HostType]; !ok {
|
|
|
|
panic(fmt.Sprintf("undefined HostType %q for builder %q", c.HostType, c.Name))
|
2015-09-09 01:18:47 +03:00
|
|
|
}
|
2017-04-13 07:34:42 +03:00
|
|
|
if c.SkipSnapshot && (c.numTestHelpers > 0 || c.numTryTestHelpers > 0) {
|
|
|
|
panic(fmt.Sprintf("config %q's SkipSnapshot is not compatible with sharded test helpers", c.Name))
|
|
|
|
}
|
2022-05-26 18:06:10 +03:00
|
|
|
for i, issue := range c.KnownIssues {
|
|
|
|
if issue == 0 {
|
|
|
|
panic(fmt.Errorf("config %q's KnownIssues slice has a zero issue at index %d", c.Name, i))
|
|
|
|
}
|
|
|
|
}
|
2017-04-12 03:35:37 +03:00
|
|
|
|
|
|
|
types := 0
|
2018-05-05 19:36:05 +03:00
|
|
|
for _, fn := range []func() bool{c.IsReverse, c.IsContainer, c.IsVM} {
|
2017-04-12 03:35:37 +03:00
|
|
|
if fn() {
|
|
|
|
types++
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if types != 1 {
|
2018-05-04 05:42:17 +03:00
|
|
|
panic(fmt.Sprintf("build config %q host type inconsistent (must be Reverse, Image, or VM)", c.Name))
|
2017-04-12 03:35:37 +03:00
|
|
|
}
|
|
|
|
|
2018-10-26 20:52:25 +03:00
|
|
|
Builders[c.Name] = &c
|
2015-01-15 23:46:22 +03:00
|
|
|
}
|
2017-04-12 03:35:37 +03:00
|
|
|
|
2023-02-02 22:15:56 +03:00
|
|
|
// tryNewMiscCompile is an intermediate step towards adding a real addMiscCompile TryBot.
|
2023-02-02 22:11:23 +03:00
|
|
|
//
|
2020-11-03 06:25:51 +03:00
|
|
|
// It adds a post-submit-only builder with KnownIssue, GoDeps set to the provided values,
|
|
|
|
// and runs on a limited set of branches to get test results without potential disruption
|
|
|
|
// for contributors. It can be modified as needed when onboarding a misc-compile builder.
|
2023-02-02 22:15:56 +03:00
|
|
|
func tryNewMiscCompile(goos, goarch, extraSuffix string, knownIssue int, goDeps []string, extraEnv ...string) {
|
2020-11-03 06:25:51 +03:00
|
|
|
if knownIssue == 0 {
|
|
|
|
panic("tryNewMiscCompile: knownIssue parameter must be non-zero")
|
|
|
|
}
|
2023-02-02 21:02:47 +03:00
|
|
|
platform := goos + "-" + goarch + extraSuffix
|
2020-11-03 06:25:51 +03:00
|
|
|
addBuilder(BuildConfig{
|
2023-02-02 22:15:56 +03:00
|
|
|
Name: "misc-compile-" + platform,
|
2023-02-02 21:54:40 +03:00
|
|
|
HostType: "host-linux-amd64-bullseye",
|
2023-07-13 21:22:13 +03:00
|
|
|
buildsRepo: miscCompileBuildSet(goos, goarch),
|
2023-02-02 21:54:40 +03:00
|
|
|
KnownIssues: []int{knownIssue},
|
|
|
|
GoDeps: goDeps,
|
|
|
|
env: append(extraEnv, "GOOS="+goos, "GOARCH="+goarch, "GO_DISABLE_OUTBOUND_NETWORK=1"),
|
|
|
|
CompileOnly: true,
|
|
|
|
SkipSnapshot: true,
|
2023-02-02 22:11:23 +03:00
|
|
|
Notes: fmt.Sprintf("Tries make.bash (or compile-only go test) for "+platform+" See go.dev/issue/%d.", knownIssue),
|
2020-11-03 06:25:51 +03:00
|
|
|
})
|
|
|
|
}
|
|
|
|
|
2020-04-09 19:47:03 +03:00
|
|
|
// fasterTrybots is a distTestAdjust policy function.
|
|
|
|
// It skips (returns false) the test/ directory and reboot tests for trybots.
|
2020-04-09 23:24:30 +03:00
|
|
|
func fasterTrybots(run bool, distTest string, isNormalTry bool) bool {
|
|
|
|
if isNormalTry {
|
2020-04-09 19:47:03 +03:00
|
|
|
if strings.HasPrefix(distTest, "test:") || distTest == "reboot" {
|
2019-03-18 01:28:15 +03:00
|
|
|
return false // skip test
|
|
|
|
}
|
2017-12-07 03:40:40 +03:00
|
|
|
}
|
2020-04-09 19:47:03 +03:00
|
|
|
return run
|
2017-12-07 03:40:40 +03:00
|
|
|
}
|
|
|
|
|
2020-04-09 19:47:03 +03:00
|
|
|
// noTestDirAndNoReboot is a distTestAdjust policy function.
|
|
|
|
// It skips (returns false) the test/ directory and reboot tests for all builds.
|
2020-04-09 23:24:30 +03:00
|
|
|
func noTestDirAndNoReboot(run bool, distTest string, isNormalTry bool) bool {
|
2019-03-18 01:28:15 +03:00
|
|
|
if strings.HasPrefix(distTest, "test:") || distTest == "reboot" {
|
2017-12-07 03:40:40 +03:00
|
|
|
return false // skip test
|
|
|
|
}
|
2020-04-09 19:47:03 +03:00
|
|
|
return run
|
2017-12-07 03:40:40 +03:00
|
|
|
}
|
2018-10-26 22:21:58 +03:00
|
|
|
|
2020-04-09 19:47:03 +03:00
|
|
|
// ppc64DistTestPolicy is a distTestAdjust policy function
|
2022-12-01 01:50:25 +03:00
|
|
|
// that's shared by linux-ppc64le, -ppc64le-power{9,10}-osu, and -ppc64.
|
2020-04-09 23:24:30 +03:00
|
|
|
func ppc64DistTestPolicy(run bool, distTest string, isNormalTry bool) bool {
|
2019-10-29 18:02:19 +03:00
|
|
|
if distTest == "reboot" {
|
|
|
|
// Skip test. It seems to use a lot of memory?
|
2022-07-22 19:04:15 +03:00
|
|
|
// See https://go.dev/issue/35233.
|
2019-10-29 18:02:19 +03:00
|
|
|
return false
|
|
|
|
}
|
2020-04-09 19:47:03 +03:00
|
|
|
return run
|
2019-10-29 18:02:19 +03:00
|
|
|
}
|
|
|
|
|
2020-04-09 19:47:03 +03:00
|
|
|
// mipsDistTestPolicy is a distTestAdjust policy function
|
2019-10-29 23:35:07 +03:00
|
|
|
// that's shared by the slow mips builders.
|
2020-04-09 23:24:30 +03:00
|
|
|
func mipsDistTestPolicy(run bool, distTest string, isNormalTry bool) bool {
|
2019-10-29 23:35:07 +03:00
|
|
|
switch distTest {
|
|
|
|
case "api", "reboot":
|
|
|
|
return false
|
|
|
|
}
|
2020-04-09 19:47:03 +03:00
|
|
|
return run
|
2019-10-29 23:35:07 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
// mipsBuildsRepoPolicy is a buildsRepo policy function
|
|
|
|
// that's shared by the slow mips builders.
|
|
|
|
func mipsBuildsRepoPolicy(repo, branch, goBranch string) bool {
|
|
|
|
switch repo {
|
|
|
|
case "go", "net", "sys":
|
|
|
|
return branch == "master" && goBranch == "master"
|
|
|
|
default:
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-09-01 10:08:03 +03:00
|
|
|
// riscvDistTestPolicy is same as mipsDistTestPolicy for now.
|
|
|
|
var riscvDistTestPolicy = mipsDistTestPolicy
|
|
|
|
|
2018-10-26 22:21:58 +03:00
|
|
|
// TryBuildersForProject returns the builders that should run as part of
|
|
|
|
// a TryBot set for the given project.
|
|
|
|
// The project argument is of the form "go", "net", "sys", etc.
|
2019-03-07 20:44:41 +03:00
|
|
|
// The branch is the branch of that project ("master", "release-branch.go1.12", etc)
|
|
|
|
// The goBranch is the branch of Go to use. If proj == "go", then branch == goBranch.
|
|
|
|
func TryBuildersForProject(proj, branch, goBranch string) []*BuildConfig {
|
2022-01-07 23:29:05 +03:00
|
|
|
return buildersForProject(proj, branch, goBranch, (*BuildConfig).BuildsRepoTryBot)
|
|
|
|
}
|
|
|
|
|
|
|
|
// isBuilderFunc is the type of functions that report whether a builder
|
|
|
|
// should be run given a project, branch and goBranch.
|
|
|
|
type isBuilderFunc func(conf *BuildConfig, proj, branch, goBranch string) bool
|
|
|
|
|
2022-01-10 22:19:02 +03:00
|
|
|
// buildersForProject returns the builders that should be run for the given project,
|
2022-01-07 23:29:05 +03:00
|
|
|
// using isBuilder to test each builder.
|
|
|
|
// See TryBuildersForProject for the valid forms of proj, branch and goBranch.
|
|
|
|
func buildersForProject(proj, branch, goBranch string, isBuilder isBuilderFunc) []*BuildConfig {
|
2018-10-26 22:21:58 +03:00
|
|
|
var confs []*BuildConfig
|
|
|
|
for _, conf := range Builders {
|
2022-01-07 23:29:05 +03:00
|
|
|
if isBuilder(conf, proj, branch, goBranch) {
|
2018-10-26 22:21:58 +03:00
|
|
|
confs = append(confs, conf)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
sort.Slice(confs, func(i, j int) bool {
|
|
|
|
return confs[i].Name < confs[j].Name
|
|
|
|
})
|
|
|
|
return confs
|
|
|
|
}
|
2019-03-07 20:44:41 +03:00
|
|
|
|
2020-03-14 00:09:21 +03:00
|
|
|
// atLeastGo1 reports whether branch is "release-branch.go1.N" where N >= min.
|
|
|
|
// It assumes "master" and "dev.*" branches are already greater than min, and
|
|
|
|
// always includes them.
|
2019-03-07 20:44:41 +03:00
|
|
|
func atLeastGo1(branch string, min int) bool {
|
|
|
|
if branch == "master" {
|
|
|
|
return true
|
|
|
|
}
|
2020-03-14 00:09:21 +03:00
|
|
|
if strings.HasPrefix(branch, "dev.") {
|
|
|
|
// Treat dev branches current.
|
|
|
|
// If a dev branch is active, it will be current.
|
|
|
|
// If it is not active, it doesn't matter anyway.
|
|
|
|
// TODO: dev.boringcrypto.go1.N branches may be the
|
|
|
|
// exception. Currently we only build boringcrypto
|
|
|
|
// on linux/amd64 and windows/386, which support all
|
|
|
|
// versions of Go, so it doesn't actually matter.
|
|
|
|
return true
|
|
|
|
}
|
2019-03-07 20:44:41 +03:00
|
|
|
major, minor, ok := version.ParseReleaseBranch(branch)
|
|
|
|
return ok && major == 1 && minor >= min
|
|
|
|
}
|
|
|
|
|
2020-03-10 20:26:20 +03:00
|
|
|
// atMostGo1 reports whether branch is "release-branch.go1.N" where N <= max.
|
|
|
|
// It assumes "master" branch is already greater than max, and doesn't include it.
|
|
|
|
func atMostGo1(branch string, max int) bool {
|
|
|
|
major, minor, ok := version.ParseReleaseBranch(branch)
|
|
|
|
return ok && major == 1 && minor <= max
|
|
|
|
}
|
|
|
|
|
2019-03-07 20:44:41 +03:00
|
|
|
// onlyGo is a common buildsRepo policy value that only builds the main "go" repo.
|
|
|
|
func onlyGo(repo, branch, goBranch string) bool { return repo == "go" }
|
2019-03-27 02:04:31 +03:00
|
|
|
|
2019-11-28 13:33:00 +03:00
|
|
|
// onlyMasterDefault is a common buildsRepo policy value that only builds
|
|
|
|
// default repos on the master branch.
|
|
|
|
func onlyMasterDefault(repo, branch, goBranch string) bool {
|
2020-07-01 21:45:10 +03:00
|
|
|
return branch == "master" && goBranch == "master" && buildRepoByDefault(repo)
|
2019-10-10 07:17:45 +03:00
|
|
|
}
|
2019-04-03 08:03:37 +03:00
|
|
|
|
2021-11-10 19:28:50 +03:00
|
|
|
// plan9Default is like onlyMasterDefault, but also omits repos that are
|
|
|
|
// both filesystem-intensive and unlikely to be relevant to plan9 users.
|
|
|
|
func plan9Default(repo, branch, goBranch string) bool {
|
|
|
|
switch repo {
|
2023-05-17 22:21:02 +03:00
|
|
|
case "benchmarks":
|
2023-05-09 00:30:57 +03:00
|
|
|
// Failure to build because of a dependency not supported on plan9.
|
|
|
|
return false
|
2021-12-01 18:23:06 +03:00
|
|
|
case "review":
|
|
|
|
// The x/review repo tests a Git hook, but the plan9 "git" doesn't have the
|
|
|
|
// same command-line API as "git" everywhere else.
|
|
|
|
return false
|
2021-11-10 19:28:50 +03:00
|
|
|
case "website":
|
|
|
|
// The x/website tests read and check the website code snippets,
|
|
|
|
// which require many filesystem walk and read operations.
|
|
|
|
return false
|
2022-04-07 22:19:55 +03:00
|
|
|
case "vulndb", "vuln":
|
|
|
|
// vulncheck can't read plan9 binaries.
|
|
|
|
return false
|
2023-07-12 20:25:11 +03:00
|
|
|
case "pkgsite":
|
|
|
|
// pkgsite has a dependency (github.com/lib/pq) that is broken on Plan 9.
|
|
|
|
return false
|
2021-11-10 19:28:50 +03:00
|
|
|
default:
|
|
|
|
return onlyMasterDefault(repo, branch, goBranch)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-07-13 21:22:13 +03:00
|
|
|
// wasip1Default returns whether we should build the repo and branch on wasip1.
|
|
|
|
func wasip1Default(repo, branch, goBranch string) bool {
|
|
|
|
b := buildRepoByDefault(repo) && atLeastGo1(goBranch, 21)
|
|
|
|
switch repo {
|
|
|
|
case "benchmarks", "debug", "perf", "pkgsite", "talks", "tools", "tour", "website":
|
|
|
|
// Don't test these golang.org/x repos.
|
|
|
|
b = false
|
|
|
|
}
|
|
|
|
if repo != "go" && !(branch == "master" && goBranch == "master") {
|
|
|
|
// For golang.org/x repos, don't test non-latest versions.
|
|
|
|
b = false
|
|
|
|
}
|
|
|
|
return b
|
|
|
|
}
|
|
|
|
|
2019-03-27 02:04:31 +03:00
|
|
|
// disabledBuilder is a buildsRepo policy function that always return false.
|
|
|
|
func disabledBuilder(repo, branch, goBranch string) bool { return false }
|
2019-03-28 02:03:50 +03:00
|
|
|
|
|
|
|
// macTestPolicy is the test policy for Macs.
|
|
|
|
//
|
|
|
|
// We have limited Mac resources. It's not worth wasting time testing
|
|
|
|
// portable things on them. That is, if there's a slow test that will
|
|
|
|
// still fail slowly on another builder where we have more resources
|
|
|
|
// (like linux-amd64), then there's no point testing it redundantly on
|
|
|
|
// the Macs.
|
2020-04-09 23:24:30 +03:00
|
|
|
func macTestPolicy(run bool, distTest string, isNormalTry bool) bool {
|
2019-03-28 02:03:50 +03:00
|
|
|
if strings.HasPrefix(distTest, "test:") {
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
switch distTest {
|
|
|
|
case "reboot", "api", "doc_progs",
|
|
|
|
"wiki", "bench_go1", "codewalk":
|
|
|
|
return false
|
|
|
|
}
|
2020-04-09 23:24:30 +03:00
|
|
|
if isNormalTry {
|
2019-03-28 02:03:50 +03:00
|
|
|
switch distTest {
|
|
|
|
case "runtime:cpu124", "race", "moved_goroot":
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
// TODO: more. Look at bigquery results once we have more data.
|
|
|
|
}
|
2020-04-09 19:47:03 +03:00
|
|
|
return run
|
2019-03-28 02:03:50 +03:00
|
|
|
}
|