diff --git a/dashboard/builders.go b/dashboard/builders.go index 0cafd5d042..b87485f984 100644 --- a/dashboard/builders.go +++ b/dashboard/builders.go @@ -28,6 +28,13 @@ var slowBotAliases = map[string]string{ // Known missing builders: "ios-amd64": "", // There is no builder for the iOS Simulator. See issues 42100 and 42177. + // Fully ported to LUCI and stopped in the coordinator. + "js": "", + "wasip1": "", + "wasm": "", + "js-wasm": "", + "wasip1-wasm": "", + "386": "linux-386", "aix": "aix-ppc64", "amd64": "linux-amd64", @@ -53,10 +60,6 @@ var slowBotAliases = map[string]string{ "freebsd-riscv64": "freebsd-riscv64-unmatched", "illumos": "illumos-amd64", "ios": "ios-arm64-corellium", - "js": "js-wasm-node18", - "js-wasm": "js-wasm-node18", - "wasip1": "wasip1-wasm-wasmtime", - "wasip1-wasm": "wasip1-wasm-wasmtime", "linux": "linux-amd64", "linux-arm": "linux-arm-aws", "linux-loong64": "linux-loong64-3a5000", @@ -103,11 +106,6 @@ var slowBotAliases = map[string]string{ "s390x": "linux-s390x-ibm", "solaris": "solaris-amd64-oraclerel", "solaris-amd64": "solaris-amd64-oraclerel", - "wasm": "js-wasm-node18", - "wasmedge": "wasip1-wasm-wasmedge", - "wasmer": "wasip1-wasm-wasmer", - "wasmtime": "wasip1-wasm-wasmtime", - "wazero": "wasip1-wasm-wazero", "windows": "windows-amd64-2016", "windows-386": "windows-386-2016", "windows-amd64": "windows-amd64-2016", @@ -750,8 +748,8 @@ type BuildConfig struct { Notes string // notes for humans // 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. + // nil means off. Even if tryBot returns true, BuildConfig.buildsRepoAtAll 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). @@ -2866,7 +2864,7 @@ func init() { // BuildersPortedToLUCI lists coordinator builders that have been ported // over to LUCI and don't need to continue to run. Their results will be // hidden from the build.golang.org page and new builds won't be started -// if stopPortedBuilders (below) is true. +// if stopPortedBuilder (below) returns true. // // See go.dev/issue/65913 // and go.dev/issue/63471. @@ -2935,9 +2933,11 @@ var BuildersPortedToLUCI = map[string]bool{ "wasip1-wasm-wazero": true, // Available as https://ci.chromium.org/p/golang/builders/ci/gotip-wasip1-wasm_wazero. } -// stopPortedBuilders controls whether ported builders should be stopped, +// stopPortedBuilder reports whether the named ported builder should be stopped, // instead of just made invisible in the web UI. -const stopPortedBuilders = false +func stopPortedBuilder(builderName string) (stop bool) { + return strings.Contains(builderName, "-wasm-") +} // addBuilder adds c to the Builders map after doing some checks. func addBuilder(c BuildConfig) { @@ -2975,8 +2975,9 @@ func addBuilder(c BuildConfig) { panic(fmt.Sprintf("build config %q host type inconsistent (must be Reverse, Image, or VM)", c.Name)) } - if BuildersPortedToLUCI[c.Name] && stopPortedBuilders { - return + if BuildersPortedToLUCI[c.Name] && stopPortedBuilder(c.Name) { + c.buildsRepo = func(_, _, _ string) bool { return false } + c.Notes = "Unavailable in the coordinator. Use LUCI (https://go.dev/wiki/LUCI) instead." } Builders[c.Name] = &c diff --git a/dashboard/builders_test.go b/dashboard/builders_test.go index be741c9d37..dccf21f983 100644 --- a/dashboard/builders_test.go +++ b/dashboard/builders_test.go @@ -91,8 +91,6 @@ func TestTrybots(t *testing.T) { branch: "master", want: []string{ "freebsd-amd64-12_3", - "js-wasm-node18", - "wasip1-wasm-wasmtime", "linux-386", "linux-amd64", "linux-amd64-boringcrypto", @@ -145,8 +143,6 @@ func TestTrybots(t *testing.T) { branch: "release-branch.go1.22", want: []string{ "freebsd-amd64-12_3", - "js-wasm-node18", - "wasip1-wasm-wasmtime", "linux-386", "linux-amd64", "linux-amd64-boringcrypto", @@ -203,8 +199,6 @@ func TestTrybots(t *testing.T) { branch: "release-branch.go1.21", want: []string{ "freebsd-amd64-12_3", - "js-wasm-node18", - "wasip1-wasm-wasmtime", "linux-386", "linux-amd64", "linux-amd64-boringcrypto", @@ -583,14 +577,14 @@ func TestBuilderConfig(t *testing.T) { {b("android-amd64-emu", "go"), onlyPost}, {b("android-386-emu", "go"), onlyPost}, - {b("js-wasm-node18", "go"), both}, - {b("js-wasm-node18@go1.21", "go"), both}, + // Builders for js/wasm are fully ported to LUCI and stopped in the coordinator. + {b("js-wasm-node18", "go"), none}, + {b("js-wasm-node18@go1.21", "go"), none}, {b("js-wasm-node18@go1.20", "go"), none}, - // Test js/wasm on a subset of golang.org/x repos: - {b("js-wasm-node18", "arch"), onlyPost}, - {b("js-wasm-node18", "crypto"), onlyPost}, - {b("js-wasm-node18", "sys"), onlyPost}, - {b("js-wasm-node18", "net"), onlyPost}, + {b("js-wasm-node18", "arch"), none}, + {b("js-wasm-node18", "crypto"), none}, + {b("js-wasm-node18", "sys"), none}, + {b("js-wasm-node18", "net"), none}, {b("js-wasm-node18", "benchmarks"), none}, {b("js-wasm-node18", "debug"), none}, {b("js-wasm-node18", "mobile"), none}, @@ -600,23 +594,23 @@ func TestBuilderConfig(t *testing.T) { {b("js-wasm-node18", "tour"), none}, {b("js-wasm-node18", "website"), none}, - {b("wasip1-wasm-wazero", "go"), onlyPost}, - {b("wasip1-wasm-wazero@go1.21", "go"), onlyPost}, + // Builders for wasip1-wasm are fully ported to LUCI and stopped in the coordinator. + {b("wasip1-wasm-wazero", "go"), none}, + {b("wasip1-wasm-wazero@go1.21", "go"), none}, {b("wasip1-wasm-wazero@go1.20", "go"), none}, - {b("wasip1-wasm-wasmtime", "go"), both}, - {b("wasip1-wasm-wasmtime@go1.21", "go"), both}, + {b("wasip1-wasm-wasmtime", "go"), none}, + {b("wasip1-wasm-wasmtime@go1.21", "go"), none}, {b("wasip1-wasm-wasmtime@go1.20", "go"), none}, - {b("wasip1-wasm-wasmer", "go"), onlyPost}, - {b("wasip1-wasm-wasmer@go1.21", "go"), onlyPost}, + {b("wasip1-wasm-wasmer", "go"), none}, + {b("wasip1-wasm-wasmer@go1.21", "go"), none}, {b("wasip1-wasm-wasmer@go1.20", "go"), none}, - {b("wasip1-wasm-wasmedge", "go"), onlyPost}, - {b("wasip1-wasm-wasmedge@go1.21", "go"), onlyPost}, + {b("wasip1-wasm-wasmedge", "go"), none}, + {b("wasip1-wasm-wasmedge@go1.21", "go"), none}, {b("wasip1-wasm-wasmedge@go1.20", "go"), none}, - // Test wasip1/wasm on a subset of golang.org/x repos: - {b("wasip1-wasm-wazero", "arch"), onlyPost}, - {b("wasip1-wasm-wazero", "crypto"), onlyPost}, - {b("wasip1-wasm-wazero", "sys"), onlyPost}, - {b("wasip1-wasm-wazero", "net"), onlyPost}, + {b("wasip1-wasm-wazero", "arch"), none}, + {b("wasip1-wasm-wazero", "crypto"), none}, + {b("wasip1-wasm-wazero", "sys"), none}, + {b("wasip1-wasm-wazero", "net"), none}, {b("wasip1-wasm-wazero", "benchmarks"), none}, {b("wasip1-wasm-wazero", "debug"), none}, {b("wasip1-wasm-wazero", "mobile"), none}, @@ -625,10 +619,10 @@ func TestBuilderConfig(t *testing.T) { {b("wasip1-wasm-wazero", "tools"), none}, {b("wasip1-wasm-wazero", "tour"), none}, {b("wasip1-wasm-wazero", "website"), none}, - {b("wasip1-wasm-wasmtime", "arch"), onlyPost}, - {b("wasip1-wasm-wasmtime", "crypto"), onlyPost}, - {b("wasip1-wasm-wasmtime", "sys"), onlyPost}, - {b("wasip1-wasm-wasmtime", "net"), onlyPost}, + {b("wasip1-wasm-wasmtime", "arch"), none}, + {b("wasip1-wasm-wasmtime", "crypto"), none}, + {b("wasip1-wasm-wasmtime", "sys"), none}, + {b("wasip1-wasm-wasmtime", "net"), none}, {b("wasip1-wasm-wasmtime", "benchmarks"), none}, {b("wasip1-wasm-wasmtime", "debug"), none}, {b("wasip1-wasm-wasmtime", "mobile"), none}, @@ -637,10 +631,10 @@ func TestBuilderConfig(t *testing.T) { {b("wasip1-wasm-wasmtime", "tools"), none}, {b("wasip1-wasm-wasmtime", "tour"), none}, {b("wasip1-wasm-wasmtime", "website"), none}, - {b("wasip1-wasm-wasmer", "arch"), onlyPost}, - {b("wasip1-wasm-wasmer", "crypto"), onlyPost}, - {b("wasip1-wasm-wasmer", "sys"), onlyPost}, - {b("wasip1-wasm-wasmer", "net"), onlyPost}, + {b("wasip1-wasm-wasmer", "arch"), none}, + {b("wasip1-wasm-wasmer", "crypto"), none}, + {b("wasip1-wasm-wasmer", "sys"), none}, + {b("wasip1-wasm-wasmer", "net"), none}, {b("wasip1-wasm-wasmer", "benchmarks"), none}, {b("wasip1-wasm-wasmer", "debug"), none}, {b("wasip1-wasm-wasmer", "mobile"), none}, @@ -649,10 +643,10 @@ func TestBuilderConfig(t *testing.T) { {b("wasip1-wasm-wasmer", "tools"), none}, {b("wasip1-wasm-wasmer", "tour"), none}, {b("wasip1-wasm-wasmer", "website"), none}, - {b("wasip1-wasm-wasmedge", "arch"), onlyPost}, - {b("wasip1-wasm-wasmedge", "crypto"), onlyPost}, - {b("wasip1-wasm-wasmedge", "sys"), onlyPost}, - {b("wasip1-wasm-wasmedge", "net"), onlyPost}, + {b("wasip1-wasm-wasmedge", "arch"), none}, + {b("wasip1-wasm-wasmedge", "crypto"), none}, + {b("wasip1-wasm-wasmedge", "sys"), none}, + {b("wasip1-wasm-wasmedge", "net"), none}, {b("wasip1-wasm-wasmedge", "benchmarks"), none}, {b("wasip1-wasm-wasmedge", "debug"), none}, {b("wasip1-wasm-wasmedge", "mobile"), none}, @@ -996,6 +990,9 @@ func TestTryBotsCompileAllPorts(t *testing.T) { // when the work of adding a new port is actively underway. knownMissing := map[string]bool{ "openbsd-mips64": true, // go.dev/issue/58110 + + "js-wasm": true, // Fully ported to LUCI and stopped in the coordinator. + "wasip1-wasm": true, // Fully ported to LUCI and stopped in the coordinator. } var done = make(map[string]bool)