dashboard: add linux-amd64-regabi builder

This adds a builder for the GOEXPERIMENT=regabi configuration of the
compiler. We'll want this builder until we enable regabi by default.

Updates golang/go#40724.

Change-Id: Ib1c7ae1e914116dd8a4440db8ee46d6af3ed1ad6
Reviewed-on: https://go-review.googlesource.com/c/build/+/279673
Trust: Austin Clements <austin@google.com>
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
diff --git a/dashboard/builders.go b/dashboard/builders.go
index 9f77ff8..69bb42a 100644
--- a/dashboard/builders.go
+++ b/dashboard/builders.go
@@ -1717,6 +1717,26 @@
 		},
 	})
 	addBuilder(BuildConfig{
+		Name:     "linux-amd64-regabi",
+		HostType: "host-linux-buster",
+		Notes:    "builder with GOEXPERIMENT=regabi, see golang.org/issue/40724",
+		buildsRepo: func(repo, branch, goBranch string) bool {
+			// Make sure we don't break things on master.
+			// The actual experiment is on dev.regabi
+			// (until we merge to master). And dev.regabi
+			// is being merged into dev.typeparams, so
+			// test that, too.
+			return repo == "go" && (branch == "master" || branch == "dev.regabi" || branch == "dev.typeparams")
+		},
+		env: []string{
+			"GO_DISABLE_OUTBOUND_NETWORK=1",
+			"GOEXPERIMENT=regabi",
+		},
+		GoDeps: []string{
+			"89b44b4e2bb2f88474d6b8476f5c28ea2aea9b28", // A master commit from 2020/12/20, just before a merge into dev.regabi, before the GOEXPERIMENT is used anywhere
+		},
+	})
+	addBuilder(BuildConfig{
 		Name:                "linux-amd64-racecompile",
 		HostType:            "host-linux-jessie",
 		tryBot:              nil, // TODO: add a func to conditionally run this trybot if compiler dirs are touched
diff --git a/dashboard/builders_test.go b/dashboard/builders_test.go
index 24036ee..56bc13c 100644
--- a/dashboard/builders_test.go
+++ b/dashboard/builders_test.go
@@ -599,6 +599,9 @@
 		{b("linux-amd64-staticlockranking@go1.15", "go"), onlyPost},
 		{b("linux-amd64-staticlockranking@go1.14", "go"), none},
 		{b("linux-amd64-staticlockranking", "net"), none},
+
+		{b("linux-amd64-regabi", "go"), onlyPost},
+		{b("linux-amd64-regabi", "net"), none},
 	}
 	for _, tt := range tests {
 		t.Run(tt.br.testName, func(t *testing.T) {