dashboard: create misc-compile-ios builder

Create the builder as a post-submit builder with a non-zero KnownIssue
value first. Once we know it works well, we'll have the confidence to
be able to safely promote it to a normal TryBot, without the risk of
causing disruption for contributors.

For golang/go#41610.

Change-Id: If871addf325b7728109afbe094b72d40e27ceec1
Reviewed-on: https://go-review.googlesource.com/c/build/+/257617
Trust: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Andrew Bonventre <andybons@golang.org>
diff --git a/dashboard/builders.go b/dashboard/builders.go
index b81620b..d4fca70 100644
--- a/dashboard/builders.go
+++ b/dashboard/builders.go
@@ -715,8 +715,8 @@
 	HostType string
 
 	// KnownIssue is a non-zero golang.org/issue/nnn number for a builder
-	// that is known to be failing for some reason, such as because it is
-	// a new builder still in development/testing, or because the feature
+	// that may fail due to a known issue, such as because it is a new
+	// builder still in development/testing, or because the feature
 	// 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
@@ -1560,6 +1560,24 @@
 	addMiscCompile("-netbsd", "^netbsd-")                    // 4: amd64, 386, arm, arm64
 	addMiscCompile("-openbsd", "^openbsd-")                  // 4: amd64, 386, arm, arm64
 
+	// TODO(golang.org/issue/41610): Test misc-compile-ios as a post-
+	// submit builder with a known issue, before promoting to trybot.
+	func(suffix, rx string) {
+		addBuilder(BuildConfig{
+			Name:        "misc-compile" + suffix,
+			HostType:    "host-linux-jessie",
+			buildsRepo:  func(repo, branch, goBranch string) bool { return repo == "go" && branch == "master" },
+			KnownIssue:  41610,
+			env:         []string{"GO_DISABLE_OUTBOUND_NETWORK=1"},
+			CompileOnly: true,
+			Notes:       "Runs buildall.sh to cross-compile & vet std+cmd packages for " + rx + ", but doesn't run any tests.",
+			allScriptArgs: []string{
+				// Filtering pattern to buildall.bash:
+				rx,
+			},
+		})
+	}("-ios", "^ios-") // 1: arm64 (for Go 1.16 and newer)
+
 	// And 3 that don't fit above:
 	addMiscCompile("-other", "^(linux-s390x|linux-riscv64|dragonfly-amd64)$")
 	// TODO: Issue 25963, get the misc-compile trybots for
diff --git a/dashboard/builders_test.go b/dashboard/builders_test.go
index aeeef91..a747ab7 100644
--- a/dashboard/builders_test.go
+++ b/dashboard/builders_test.go
@@ -790,7 +790,6 @@
 	done["nacl-386"] = true    // removed in Go 1.14
 	done["nacl-arm"] = true    // removed in Go 1.14
 	done["windows-arm"] = true // TODO(golang.org/issue/38607) disabled until builder is replaced
-	done["ios-arm64"] = true   // TODO(golang.org/issue/41610): Add builder for ios/arm64.
 	check := func(goos, goarch string) {
 		if goos == "android" {
 			// TODO(golang.org/issue/25963): support