windows-verify: GCP / Windows Server support

GCP only offers Windows Server images, which lack winget. Rewrite
bootstrap-windows.ps1 to be winget-free (Chocolatey for git + VS Build Tools,
direct-from-Google for the Flutter SDK) and add a -SkipVS fast path — the
ConPTY soak only needs Flutter/Dart. Runs under Windows PowerShell 5.1. README
gains a self-contained GCP Cloud Shell runbook (create / reset-password / RDP /
stop / delete).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-14 21:23:12 +02:00
co-authored by Claude Opus 4.8
parent faacb732bc
commit 1c7fc7d786
2 changed files with 99 additions and 52 deletions
+31 -5
View File
@@ -20,6 +20,30 @@ Tooling to **verify (or refute) the Windows test-freeze assessment** for the
The leak (#1) is the **test-path** explanation and the actionable one. A VM is
the right instrument for it; it is the wrong instrument for #5.
## On a cloud VM (GCP) — no local hypervisor
If the host has no KVM (e.g. VT-x disabled in firmware), run this on a GCP
Windows Server instance instead — real hardware acceleration, nothing installed
locally. From the GCP Cloud Shell (browser; `gcloud` preinstalled):
```bash
gcloud compute instances create clide-win-verify \
--zone=us-central1-a --machine-type=e2-standard-4 \
--image-family=windows-2022 --image-project=windows-cloud \
--boot-disk-size=100GB --boot-disk-type=pd-ssd
gcloud compute reset-windows-password clide-win-verify --zone=us-central1-a --user=admin
```
RDP to the printed IP with the printed credentials (KDE: KRDC; or
`flatpak install flathub org.remmina.Remmina`). Then run steps 2-3 below inside
Windows (`bootstrap-windows.ps1 -SkipVS` is winget-free and Server-compatible).
Stop the VM when idle, delete it when done:
```bash
gcloud compute instances stop clide-win-verify --zone=us-central1-a # idle
gcloud compute instances delete clide-win-verify --zone=us-central1-a # done
```
## The three steps
1. **Provision the VM** (on the Fedora/KVM host — "danoontje"):
@@ -31,16 +55,18 @@ the right instrument for it; it is the wrong instrument for #5.
Finish the interactive Windows install in `virt-viewer` (load the virtio
disk driver from the second CD during setup).
2. **Bootstrap the toolchain** (inside Windows, elevated PowerShell):
2. **Bootstrap the toolchain** (inside Windows, elevated PowerShell). No winget
dependency, so this also works on Windows Server / GCP images. For the soak,
`-SkipVS` installs only Flutter/Dart:
```powershell
pwsh -File tools\windows-verify\bootstrap-windows.ps1
powershell -ExecutionPolicy Bypass -File tools\windows-verify\bootstrap-windows.ps1 -SkipVS
```
Installs Git, Flutter/Dart, and VS 2022 Build Tools (C++ workload), then
clones + checks out `windows-support` and builds the C CLI.
Drop `-SkipVS` to also install VS 2022 Build Tools (needed only for
`flutter build windows` + the C CLI). Clones + checks out `windows-support`.
3. **Run the soak** (new shell, so PATH is fresh):
```powershell
pwsh -File tools\windows-verify\soak-conpty.ps1 -Iterations 40
powershell -ExecutionPolicy Bypass -File tools\windows-verify\soak-conpty.ps1 -Iterations 40
```
## Reading the result