tailscale/.github/workflows
Brad Fitzpatrick 8a9840d6a8 tool: replace go.cmd with a 19KB Rust go.exe wrapper
go.cmd used cmd.exe to invoke PowerShell, which mangled arguments:
cmd.exe treats ^ as an escape character (so -run "^$" became -run "$",
running all tests instead of none) and = signs also caused issues in
the PowerShell→cmd.exe argument passing layer.

Replace it with a tiny no_std Rust binary (19KB, 32-bit x86 for
universal Windows compat: x86/x64/ARM64) that directly invokes the
Tailscale Go toolchain via CreateProcessW. The raw command line from
GetCommandLineW is passed through to CreateProcessW with only argv[0]
replaced, so arguments are never parsed or re-escaped.

The binary also handles first-run toolchain download natively using
curl.exe and tar.exe (both ship with Windows 10+), so PowerShell is
no longer required for normal operation. The PowerShell fallback is
only used for the rare TS_USE_GOCROSS=1 path.

PowerShell prefers go.exe over go.cmd when resolving ./tool/go, so
this is a drop-in replacement.

With go.exe in place, the CI can use the natural -bench=. -benchtime=1x
-run="^$" flags directly.

Also removes tool/go-win.ps1 which is now unused.

Updates #19255

Change-Id: I80da23285b74796e7694b89cff29a9fa0eaa6281
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2026-04-08 14:08:30 -07:00
..
checklocks.yml .github: bump actions/checkout from 6.0.1 to 6.0.2 2026-02-23 08:44:40 -07:00
cigocacher.yml .github: Bump actions/download-artifact from 8.0.0 to 8.0.1 2026-03-27 14:55:59 +00:00
codeql-analysis.yml .github: Bump github/codeql-action from 4.32.6 to 4.34.1 2026-03-23 15:53:31 +00:00
docker-base.yml .github: bump actions/checkout from 6.0.1 to 6.0.2 2026-02-23 08:44:40 -07:00
docker-file-build.yml .github: bump actions/checkout from 6.0.1 to 6.0.2 2026-02-23 08:44:40 -07:00
flakehub-publish-tagged.yml .github: bump actions/checkout from 6.0.1 to 6.0.2 2026-02-23 08:44:40 -07:00
golangci-lint.yml go.toolchain.branch: switch to Go 1.26 2026-03-04 21:57:05 -08:00
govulncheck.yml .github: bump actions/checkout from 6.0.1 to 6.0.2 2026-02-23 08:44:40 -07:00
installer.yml .github: bump actions/checkout from 6.0.1 to 6.0.2 2026-02-23 08:44:40 -07:00
kubemanifests.yaml .github: bump actions/checkout from 6.0.1 to 6.0.2 2026-02-23 08:44:40 -07:00
natlab-integrationtest.yml .github/workflows: enable natlab in CI 2026-03-04 15:02:07 -08:00
pin-github-actions.yml .github: bump actions/checkout from 6.0.1 to 6.0.2 2026-02-23 08:44:40 -07:00
request-dataplane-review.yml .github: Bump actions/create-github-app-token from 2.2.1 to 3.0.0 (#19003) 2026-03-26 10:08:56 -04:00
ssh-integrationtest.yml .github: bump actions/checkout from 6.0.1 to 6.0.2 2026-02-23 08:44:40 -07:00
test.yml tool: replace go.cmd with a 19KB Rust go.exe wrapper 2026-04-08 14:08:30 -07:00
update-flake.yml .github: Bump actions/create-github-app-token from 2.2.1 to 3.0.0 (#19003) 2026-03-26 10:08:56 -04:00
update-webclient-prebuilt.yml .github: Bump actions/create-github-app-token from 2.2.1 to 3.0.0 (#19003) 2026-03-26 10:08:56 -04:00
vet.yml cmd/vet: add subtestnames analyzer; fix all existing violations 2026-04-05 15:52:51 -07:00
webclient.yml .github: bump actions/checkout from 6.0.1 to 6.0.2 2026-02-23 08:44:40 -07:00