55 pull_request :
66 paths :
77 - " .github/workflows/windows-shell.yml"
8+ - " Package.swift"
9+ - " Package.resolved"
10+ - " MailroomKit/**"
11+ - " GraphcodeKit/**"
12+ - " graphcode-cli/**"
13+ - " graphcoded/**"
14+ - " windows-tests/**"
815 - " graphcode-windows/**"
16+ - " Tools/windows/bootstrap.ps1"
917 - " Tools/windows/windows-shell.ps1"
1018 - " Tools/windows/uia-live-gate.ps1"
1119 - " Tools/windows/validate.ps1"
@@ -29,59 +37,14 @@ jobs:
2937 steps :
3038 - uses : actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
3139
32- - name : Install exact Zig toolchains
40+ - name : Bootstrap exact Windows dependencies
3341 shell : pwsh
34- run : |
35- $ErrorActionPreference = "Stop"
36- $toolRoot = Join-Path $env:GITHUB_WORKSPACE ".ci-tools"
37- New-Item -ItemType Directory -Force -Path $toolRoot | Out-Null
38-
39- function Install-Zig([string] $version, [string] $sha256) {
40- $archive = Join-Path $toolRoot "zig-$version.zip"
41- $directory = Join-Path $toolRoot "zig-$version"
42- Invoke-WebRequest `
43- -Uri "https://github.com/ziglang/zig/releases/download/$version/zig-x86_64-windows-$version.zip" `
44- -OutFile $archive
45- if ((Get-FileHash $archive -Algorithm SHA256).Hash -ne $sha256) {
46- throw "Zig $version archive checksum mismatch"
47- }
48- Expand-Archive -LiteralPath $archive -DestinationPath $toolRoot -Force
49- $expanded = Join-Path $toolRoot "zig-x86_64-windows-$version"
50- Move-Item -LiteralPath $expanded -Destination $directory -Force
51- return (Join-Path $directory "zig.exe")
52- }
53-
54- $zig0152 = Install-Zig `
55- "0.15.2" `
56- "3A0ED1E8799A2F8CE2A6E6290A9FF22E6906F8227865911FB7DDEDC3CC14CB0C"
57- $zig0160 = Install-Zig `
58- "0.16.0" `
59- "68659EB5F1E4EB1437A722F1DD889C5A322C9954607F5EDCF337BC3684A75A7E"
60- "GRAPHCODE_ZIG0152=$zig0152" >> $env:GITHUB_ENV
61- "GRAPHCODE_ZIG0160=$zig0160" >> $env:GITHUB_ENV
62-
63- - name : Checkout exact Winghostty provider
64- shell : pwsh
65- run : |
66- git clone --no-checkout https://github.com/coneilen/winghostty.git Winghostty-worktrees/host-integration
67- git -C Winghostty-worktrees/host-integration checkout --detach f5abc059e4ca58b376eb209313aca7784659c679
68-
69- - name : Checkout exact zmx provider
70- shell : pwsh
71- run : |
72- git clone --no-checkout https://github.com/coneilen/zmx.git zmx-worktrees/attach
73- git -C zmx-worktrees/attach checkout --detach 858727af10cdf43d66cb3733cff58dc90ec4b3dd
42+ run : ./Tools/windows/bootstrap.ps1 -ToolRoot .ci-tools -ProviderRoot .ci-providers
7443
7544 - name : Verify shell contracts and pinned-provider smoke
7645 shell : pwsh
77- env :
78- GRAPHCODE_WINGHOSTTY_ROOT : ${{ github.workspace }}\Winghostty-worktrees\host-integration
79- GRAPHCODE_ZMX_ROOT : ${{ github.workspace }}\zmx-worktrees\attach
8046 run : ./Tools/windows/validate.ps1 -Task windows-shell
8147
8248 - name : Validate release packaging
8349 shell : pwsh
84- env :
85- GRAPHCODE_WINGHOSTTY_ROOT : ${{ github.workspace }}\Winghostty-worktrees\host-integration
86- GRAPHCODE_ZMX_ROOT : ${{ github.workspace }}\zmx-worktrees\attach
8750 run : ./Tools/windows/validate.ps1 -Task packaging
0 commit comments