CI: add windows arm64 workflow (#4175)

* CI: add windows arm64 workflow

* add win-arm64 capslock

* add capslock build tag

* add servive test build tag

* skip proc_test.go

* unskip more tests

* skip TestHardcodedBreakpointCounts as flaky

* add gotip

* add version log to ps1

* switch logic to use stable json endpoint for getting latest go

* add continue-on-error for gotip
This commit is contained in:
George Adams
2025-10-08 22:44:12 +01:00
committed by GitHub
parent 7b41ab9324
commit cb52d0cc1b
8 changed files with 86 additions and 13 deletions

View File

@ -0,0 +1,40 @@
Capslock is an experimental tool for static analysis of Go packages.
Share feedback and file bugs at https://github.com/google/capslock.
For additional debugging signals, use verbose mode with -output=verbose
To get machine-readable full analysis output, use -output=json
Analyzed packages:
github.com/cosiner/argv v0.1.0
github.com/cpuguy83/go-md2man/v2 v2.0.6
github.com/derekparker/trie/v3 v3.2.0
github.com/go-delve/liner v1.2.3-0.20231231155935-4726ab1d7f62
github.com/google/go-dap v0.12.0
github.com/hashicorp/golang-lru/v2 v2.0.7
github.com/inconshreveable/mousetrap v1.1.0
github.com/mattn/go-colorable v0.1.13
github.com/mattn/go-isatty v0.0.20
github.com/mattn/go-runewidth v0.0.13
github.com/rivo/uniseg v0.2.0
github.com/russross/blackfriday/v2 v2.1.0
github.com/spf13/cobra v1.9.1
github.com/spf13/pflag v1.0.6
go.starlark.net v0.0.0-20231101134539-556fd59b42f6
golang.org/x/arch v0.11.0
golang.org/x/sync v0.8.0
golang.org/x/sys v0.26.0
golang.org/x/telemetry v0.0.0-20241106142447-58a1122356f5
gopkg.in/yaml.v3 v3.0.1
CAPABILITY_ARBITRARY_EXECUTION: 2 references
CAPABILITY_EXEC: 2 references
CAPABILITY_FILES: 2 references
CAPABILITY_MODIFY_SYSTEM_STATE: 1 references
CAPABILITY_NETWORK: 1 references
CAPABILITY_OPERATING_SYSTEM: 1 references
CAPABILITY_READ_SYSTEM_STATE: 2 references
CAPABILITY_REFLECT: 2 references
CAPABILITY_RUNTIME: 1 references
CAPABILITY_SYSTEM_CALLS: 2 references
CAPABILITY_UNANALYZED: 2 references
CAPABILITY_UNSAFE_POINTER: 2 references

View File

@ -26,6 +26,7 @@ var platforms = []Platform{
{GOOS: "darwin", GOARCH: "amd64"},
{GOOS: "darwin", GOARCH: "arm64"},
{GOOS: "windows", GOARCH: "amd64"},
{GOOS: "windows", GOARCH: "arm64", BuildTags: "exp.winarm64"},
}
const (

View File

@ -18,7 +18,7 @@ if ($arch -eq "amd64")
#Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
choco install -y mingw
} elseif ($arch -eq "arm64") {
$llvmVersion = "20220906"
$llvmVersion = "20250924"
$name = "llvm-mingw-$llvmVersion-ucrt-aarch64"
if (-Not(Test-Path "$binDir\llvm-mingw\$name"))
{
@ -44,6 +44,7 @@ $env:PATH = "$binDir\procdump;$env:PATH"
function GetGo($version) {
$env:GOROOT = "$binDir\go\$version"
Write-Host "Installing Go $version to $env:GOROOT"
if (-Not(Test-Path $env:GOROOT))
{
$file = "$version.windows-$arch.zip"
@ -57,7 +58,8 @@ function GetGo($version) {
if ($version -eq "gotip") {
#Exit 0
$latest = (Invoke-WebRequest -Uri "https://golang.org/VERSION?m=text" -UseBasicParsing | Select-Object -ExpandProperty Content -ErrorAction Stop).Split([Environment]::NewLine) | select -first 1
$versions = Invoke-WebRequest -Uri "https://go.dev/dl/?mode=json" -UseBasicParsing | foreach {$_.Content} | ConvertFrom-Json -ErrorAction Stop
$latest = $versions[0].version
GetGo $latest
$env:GOROOT_BOOTSTRAP = $env:GOROOT
$env:GOROOT = "$binDir\go\go-tip"