all: add Windows 11 builder
Add a new host type, host-windows11-arm64-mini. It should support both
ARM64 and ARM builds but for starters let's focus on ARM64.
For golang/go#48946, golang/go#47019.
Change-Id: I7ff07a97661fb6621237b9801ff0d0e338c6d4f4
Reviewed-on: https://go-review.googlesource.com/c/build/+/377696
Trust: Heschi Kreinick <heschi@google.com>
Run-TryBot: Heschi Kreinick <heschi@google.com>
Reviewed-by: Alex Rakoczy <alex@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
diff --git a/cmd/buildlet/stage0/Makefile b/cmd/buildlet/stage0/Makefile
index 204c6fb..1156340 100644
--- a/cmd/buildlet/stage0/Makefile
+++ b/cmd/buildlet/stage0/Makefile
@@ -22,6 +22,10 @@
go install golang.org/x/build/cmd/upload
upload --verbose --osarch=$@ --file=go:golang.org/x/build/cmd/buildlet/stage0 --public --cacheable=false go-builder-data/$@
+buildlet-stage0.windows-arm64: FORCE
+ go install golang.org/x/build/cmd/upload
+ upload --verbose --osarch=$@ --file=go:golang.org/x/build/cmd/buildlet/stage0 --public --cacheable=false go-builder-data/$@
+
buildlet-stage0.linux-arm: FORCE
go install golang.org/x/build/cmd/upload
upload --verbose --osarch=$@ --file=go:golang.org/x/build/cmd/buildlet/stage0 --public --cacheable=false go-builder-data/$@
diff --git a/cmd/buildlet/stage0/stage0.go b/cmd/buildlet/stage0/stage0.go
index 7460cd7..9703c2a 100644
--- a/cmd/buildlet/stage0/stage0.go
+++ b/cmd/buildlet/stage0/stage0.go
@@ -202,7 +202,7 @@
cmd.Args = append(cmd.Args, reverseHostTypeArgs(hostType)...)
case "windows/arm64":
switch buildEnv {
- case "host-windows-arm64-mini":
+ case "host-windows-arm64-mini", "host-windows11-arm64-mini":
cmd.Args = append(cmd.Args,
"--halt=true",
"--reverse-type="+buildEnv,
diff --git a/dashboard/builders.go b/dashboard/builders.go
index 84c9a72..7f8212f 100644
--- a/dashboard/builders.go
+++ b/dashboard/builders.go
@@ -539,7 +539,14 @@
buildletURLTmpl: "http://storage.googleapis.com/$BUCKET/buildlet.windows-arm64",
goBootstrapURLTmpl: "https://storage.googleapis.com/$BUCKET/gobootstrap-windows-arm64-f22ec5.tar.gz",
IsReverse: true,
- ExpectNum: 7,
+ ExpectNum: 6,
+ },
+ "host-windows11-arm64-mini": &HostConfig{
+ Notes: "macOS hosting Windows 11 in qemu with HVM acceleration.",
+ buildletURLTmpl: "http://storage.googleapis.com/$BUCKET/buildlet.windows-arm64",
+ goBootstrapURLTmpl: "https://storage.googleapis.com/$BUCKET/gobootstrap-windows-arm64-f22ec5.tar.gz",
+ IsReverse: true,
+ ExpectNum: 1,
},
"host-darwin-10_12": &HostConfig{
IsReverse: true,
@@ -2476,6 +2483,17 @@
},
})
addBuilder(BuildConfig{
+ Name: "windows-arm64-11",
+ HostType: "host-windows11-arm64-mini",
+ numTryTestHelpers: 1,
+ buildsRepo: func(repo, branch, goBranch string) bool {
+ return atLeastGo1(goBranch, 18) && buildRepoByDefault(repo)
+ },
+ env: []string{
+ "GOARCH=arm64",
+ },
+ })
+ addBuilder(BuildConfig{
Name: "darwin-amd64-10_12",
HostType: "host-darwin-10_12",
distTestAdjust: macTestPolicy,
diff --git a/env/windows-arm64/README.md b/env/windows-arm64/README.md
index c062437..6b670b8 100644
--- a/env/windows-arm64/README.md
+++ b/env/windows-arm64/README.md
@@ -13,7 +13,7 @@
- Convert vhdx images to qcow2 via the following command:
```shell
- qemu-image convert -O qcow2 win.vhdx win.qcow2
+ qemu-img convert -O qcow2 win.vhdx win.qcow2
```
- SSH to your instance tunneling port 5903, and run `win10-arm64.sh`
@@ -29,6 +29,9 @@
- Alternatively, you can modify `win10-arm64.sh` to forward ssh
access to the VM, and run PowerShell in the CLI, which is a bit
easier than through VNC.
+- Verify autologin works after a reboot. If not, try
+ https://docs.microsoft.com/en-us/sysinternals/downloads/autologon.
+- Set GO_BUILDER_ENV and install a builder key.
- Once the image is complete, download the image to your workstation
and upload to `s3://go-builder-data`.
- You can find the appropriate the S3 path referenced in
diff --git a/env/windows-arm64/startup.ps1 b/env/windows-arm64/startup.ps1
index 7e5bc6d..88e343c 100644
--- a/env/windows-arm64/startup.ps1
+++ b/env/windows-arm64/startup.ps1
@@ -135,7 +135,7 @@
Get-FileFromUrl -URL "https://aka.ms/vs/16/release/vs_buildtools.exe" -Output "$vs_buildtools"
Write-Host "installing Visual Studio Build Tools"
-& $vs_buildtools --quiet --wait --norestart --nocache --installPath "$dep_dir\vs" --all --add Microsoft.VisualStudio.Component.VC.Tools.ARM64
+& $vs_buildtools --quiet --wait --norestart --nocache --installPath "$dep_dir\vs" --all --add Microsoft.VisualStudio.Component.VC.Tools.ARM64 --add Microsoft.VisualStudio.Component.VC.Tools.ARM
# Create a buildlet user
Write-Host "creating buildlet user"