dashboard: add "*-newcc" windows builders with updated VMs

Add a set of new "*-newcc" windows 386/amd64 builders that use new
Windows VMs that incorporate updated GCP base images and updated C
compilers. These builders are tagged with a known issue (35006) and
are not included in any trybot sets at the moment. This change is
intended to make it easier to work on the remaining issues blocking
the adoption of the new compilers; once we have fixes checked in we
can get rid of these builders and roll the default windows builders to
the "*v8" images.

Updates golang/go#35006.

Change-Id: I1a7fb5699c20428a846b932e395aeb10ad7adfa9
Reviewed-on: https://go-review.googlesource.com/c/build/+/413415
Reviewed-by: Carlos Amedee <carlos@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Than McIntosh <thanm@google.com>
diff --git a/dashboard/builders.go b/dashboard/builders.go
index 729edd9..9e7a775 100644
--- a/dashboard/builders.go
+++ b/dashboard/builders.go
@@ -405,6 +405,13 @@
 		goBootstrapURLTmpl: "https://storage.googleapis.com/$BUCKET/go1.4-windows-amd64.tar.gz",
 		SSHUsername:        "gopher",
 	},
+	"host-windows-amd64-2008-newcc": &HostConfig{
+		VMImage:            "windows-amd64-server-2008r2-v8",
+		machineType:        "e2-highcpu-4", // 4 vCPUs, 4 GB mem
+		buildletURLTmpl:    "http://storage.googleapis.com/$BUCKET/buildlet.windows-amd64",
+		goBootstrapURLTmpl: "https://storage.googleapis.com/$BUCKET/go1.4-windows-amd64.tar.gz",
+		SSHUsername:        "gopher",
+	},
 	"host-windows-amd64-2012": &HostConfig{
 		VMImage:            "windows-amd64-server-2012r2-v7",
 		machineType:        "e2-highcpu-4", // 4 vCPUs, 4 GB mem
@@ -412,6 +419,13 @@
 		goBootstrapURLTmpl: "https://storage.googleapis.com/$BUCKET/go1.4-windows-amd64.tar.gz",
 		SSHUsername:        "gopher",
 	},
+	"host-windows-amd64-2012-newcc": &HostConfig{
+		VMImage:            "windows-amd64-server-2012r2-v8",
+		machineType:        "e2-highcpu-4", // 4 vCPUs, 4 GB mem
+		buildletURLTmpl:    "http://storage.googleapis.com/$BUCKET/buildlet.windows-amd64",
+		goBootstrapURLTmpl: "https://storage.googleapis.com/$BUCKET/go1.4-windows-amd64.tar.gz",
+		SSHUsername:        "gopher",
+	},
 	"host-windows-amd64-2016": &HostConfig{
 		VMImage:            "windows-amd64-server-2016-v7",
 		machineType:        "e2-highcpu-4", // 4 vCPUs, 4 GB mem
@@ -419,6 +433,13 @@
 		goBootstrapURLTmpl: "https://storage.googleapis.com/$BUCKET/go1.4-windows-amd64.tar.gz",
 		SSHUsername:        "gopher",
 	},
+	"host-windows-amd64-2016-newcc": &HostConfig{
+		VMImage:            "windows-amd64-server-2016-v8",
+		machineType:        "e2-highcpu-4", // 4 vCPUs, 4 GB mem
+		buildletURLTmpl:    "http://storage.googleapis.com/$BUCKET/buildlet.windows-amd64",
+		goBootstrapURLTmpl: "https://storage.googleapis.com/$BUCKET/go1.4-windows-amd64.tar.gz",
+		SSHUsername:        "gopher",
+	},
 	"host-windows-amd64-2016-big": &HostConfig{
 		Notes:              "Same as host-windows-amd64-2016, but on e2-highcpu-16",
 		VMImage:            "windows-amd64-server-2016-v7",
@@ -427,6 +448,14 @@
 		goBootstrapURLTmpl: "https://storage.googleapis.com/$BUCKET/go1.4-windows-amd64.tar.gz",
 		SSHUsername:        "gopher",
 	},
+	"host-windows-amd64-2016-big-newcc": &HostConfig{
+		Notes:              "Same as host-windows-amd64-2016, but on e2-highcpu-16",
+		VMImage:            "windows-amd64-server-2016-v8",
+		machineType:        "e2-highcpu-16", // 16 vCPUs, 16 GB mem
+		buildletURLTmpl:    "http://storage.googleapis.com/$BUCKET/buildlet.windows-amd64",
+		goBootstrapURLTmpl: "https://storage.googleapis.com/$BUCKET/go1.4-windows-amd64.tar.gz",
+		SSHUsername:        "gopher",
+	},
 	"host-windows-arm64-zx2c4": &HostConfig{
 		IsReverse: true,
 		ExpectNum: 0,
@@ -2222,6 +2251,22 @@
 		},
 	})
 	addBuilder(BuildConfig{
+		Name:           "windows-amd64-2008-newcc",
+		HostType:       "host-windows-amd64-2008-newcc",
+		distTestAdjust: noTestDirAndNoReboot,
+		buildsRepo:     onlyGo,
+		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",
+		},
+		KnownIssues: []int{35006},
+	})
+	addBuilder(BuildConfig{
 		Name:              "windows-386-2008",
 		HostType:          "host-windows-amd64-2008",
 		buildsRepo:        defaultPlusExpBuild,
@@ -2231,6 +2276,13 @@
 		numTryTestHelpers: 4,
 	})
 	addBuilder(BuildConfig{
+		Name:        "windows-386-2008-newcc",
+		HostType:    "host-windows-amd64-2008-newcc",
+		buildsRepo:  defaultPlusExpBuild,
+		env:         []string{"GOARCH=386", "GOHOSTARCH=386"},
+		KnownIssues: []int{35006},
+	})
+	addBuilder(BuildConfig{
 		Name:              "windows-386-2012",
 		HostType:          "host-windows-amd64-2012",
 		distTestAdjust:    fasterTrybots,
@@ -2240,6 +2292,13 @@
 		numTryTestHelpers: 4,
 	})
 	addBuilder(BuildConfig{
+		Name:        "windows-386-2012-newcc",
+		HostType:    "host-windows-amd64-2012-newcc",
+		buildsRepo:  onlyGo,
+		env:         []string{"GOARCH=386", "GOHOSTARCH=386"},
+		KnownIssues: []int{35006},
+	})
+	addBuilder(BuildConfig{
 		Name:           "windows-amd64-2012",
 		HostType:       "host-windows-amd64-2012",
 		distTestAdjust: noTestDirAndNoReboot,
@@ -2255,6 +2314,22 @@
 		},
 	})
 	addBuilder(BuildConfig{
+		Name:           "windows-amd64-2012-newcc",
+		HostType:       "host-windows-amd64-2012-newcc",
+		distTestAdjust: noTestDirAndNoReboot,
+		buildsRepo:     onlyGo,
+		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",
+		},
+		KnownIssues: []int{35006},
+	})
+	addBuilder(BuildConfig{
 		Name:           "windows-amd64-2016",
 		HostType:       "host-windows-amd64-2016",
 		buildsRepo:     defaultPlusExpBuild,
@@ -2272,6 +2347,21 @@
 		numTryTestHelpers: 5,
 	})
 	addBuilder(BuildConfig{
+		Name:       "windows-amd64-2016-newcc",
+		HostType:   "host-windows-amd64-2016-newcc",
+		buildsRepo: defaultPlusExpBuild,
+		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",
+		},
+		KnownIssues: []int{35006},
+	})
+	addBuilder(BuildConfig{
 		Name:     "windows-amd64-longtest",
 		HostType: "host-windows-amd64-2016-big",
 		Notes:    "Windows Server 2016 with go test -short=false",
@@ -2294,6 +2384,24 @@
 		numTryTestHelpers: 4, // Target time is < 15 min for golang.org/issue/42661.
 	})
 	addBuilder(BuildConfig{
+		Name:     "windows-amd64-longtest-newcc",
+		HostType: "host-windows-amd64-2016-big-newcc",
+		Notes:    "Windows Server 2016 with go test -short=false",
+		buildsRepo: func(repo, branch, goBranch string) bool {
+			b := defaultPlusExpBuild(repo, branch, goBranch)
+			if repo != "go" && !(branch == "master" && goBranch == "master") {
+				// For golang.org/x repos, don't test non-latest versions.
+				b = false
+			}
+			return b
+		},
+		needsGoProxy: true, // for cmd/go module tests
+		env: []string{
+			"GO_TEST_TIMEOUT_SCALE=5", // give them lots of time
+		},
+		KnownIssues: []int{35006},
+	})
+	addBuilder(BuildConfig{
 		Name:     "windows-amd64-race",
 		HostType: "host-windows-amd64-2016-big",
 		Notes:    "Only runs -race tests (./race.bat)",
@@ -2307,6 +2415,20 @@
 			"GO_TEST_TIMEOUT_SCALE=2"},
 	})
 	addBuilder(BuildConfig{
+		Name:     "windows-amd64-race-newcc",
+		HostType: "host-windows-amd64-2016-big-newcc",
+		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"},
+		KnownIssues: []int{35006},
+	})
+	addBuilder(BuildConfig{
 		Name:     "windows-arm-zx2c4",
 		HostType: "host-windows-arm64-zx2c4",
 		env: []string{