cmd/coordinator: enable post submit builder for linux-amd64-unified

This change enables post submit builder runs for linux-amd64-unified
on the dev.typeparams branch. When the coordinator bootstraps new
builders, it omits builders which are not for the go repository and
the master branch.

Fixes golang/go#46786
Updates golang/go#46864

Change-Id: I4c74df8f02674e0265b455eee92983f2e6c41229
Reviewed-on: https://go-review.googlesource.com/c/build/+/329929
Trust: Carlos Amedee <carlos@golang.org>
Run-TryBot: Carlos Amedee <carlos@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Alexander Rakoczy <alex@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
diff --git a/cmd/coordinator/coordinator.go b/cmd/coordinator/coordinator.go
index 2f52c1a..70d3f94 100644
--- a/cmd/coordinator/coordinator.go
+++ b/cmd/coordinator/coordinator.go
@@ -931,7 +931,8 @@
 		knownToDashboard[b] = true
 	}
 
-	var goRevisions []string // revisions of repo "go", branch "master" revisions
+	var goRevisions []string           // revisions of repo "go", branch "master"
+	var goRevisionsTypeParams []string // revisions of repo "go", branch "dev.typeparams" golang.org/issue/46786 and golang.org/issue/46864
 	seenSubrepo := make(map[string]bool)
 	commitTime := make(map[string]string)   // git rev => "2019-11-20T22:54:54Z" (time.RFC3339 from build.golang.org's JSON)
 	commitBranch := make(map[string]string) // git rev => "master"
@@ -966,6 +967,8 @@
 		if br.Repo == "go" {
 			if br.Branch == "master" {
 				goRevisions = append(goRevisions, br.Revision)
+			} else if br.Branch == "dev.typeparams" {
+				goRevisionsTypeParams = append(goRevisionsTypeParams, br.Revision)
 			}
 		} else {
 			// If this is the first time we've seen this sub-repo
@@ -1028,12 +1031,20 @@
 	// And to bootstrap new builders, see if we have any builders
 	// that the dashboard doesn't know about.
 	for b, builderInfo := range dashboard.Builders {
-		if knownToDashboard[b] ||
-			!builderInfo.BuildsRepoPostSubmit("go", "master", "master") {
+		if knownToDashboard[b] {
+			// no need to bootstrap.
 			continue
 		}
-		for _, rev := range goRevisions {
-			add(buildgo.BuilderRev{Name: b, Rev: rev})
+		if builderInfo.BuildsRepoPostSubmit("go", "master", "master") {
+			for _, rev := range goRevisions {
+				add(buildgo.BuilderRev{Name: b, Rev: rev})
+			}
+		} else if builderInfo.BuildsRepoPostSubmit("go", "dev.typeparams", "dev.typeparams") {
+			// schedule builds on dev.typeparams branch
+			// golang.org/issue/46786 and golang.org/issue/46864
+			for _, rev := range goRevisionsTypeParams {
+				add(buildgo.BuilderRev{Name: b, Rev: rev})
+			}
 		}
 	}
 	return nil