Skip to content

Commit f1baf9c

Browse files
WebKit ARM64 Builderclaude
andcommitted
Use mixed package managers for ARM64 Windows CI
- Scoop for ARM64-native packages (cmake, ninja, python) - Chocolatey for LLVM and Perl (x64 via emulation) - Manual Ruby install (x64 works on ARM64) This combination ensures all dependencies are installed correctly on GitHub Actions ARM64 Windows runners. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent faa4aad commit f1baf9c

File tree

1 file changed

+18
-30
lines changed

1 file changed

+18
-30
lines changed

.github/workflows/build.yml

Lines changed: 18 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -254,45 +254,33 @@ jobs:
254254
runs-on: ${{ matrix.runner }}
255255
timeout-minutes: 90
256256
steps:
257-
- name: Check available package managers and install dependencies
257+
- name: Install dependencies for ARM64 Windows
258258
run: |
259-
Write-Host "=== Checking available package managers ==="
260-
261-
# Check what's already available
262-
if (Get-Command winget -ErrorAction SilentlyContinue) {
263-
Write-Host "WinGet is available"
264-
winget --version
265-
}
266-
if (Get-Command choco -ErrorAction SilentlyContinue) {
267-
Write-Host "Chocolatey is available"
268-
choco --version
269-
}
270-
if (Get-Command scoop -ErrorAction SilentlyContinue) {
271-
Write-Host "Scoop is available"
272-
scoop --version
273-
}
274-
275-
Write-Host "=== Processor Architecture ==="
276-
Get-WmiObject -Class Win32_Processor | Select-Object Name, Architecture
277-
278-
Write-Host "=== Environment Variables ==="
279-
Write-Host "PROCESSOR_ARCHITECTURE: $env:PROCESSOR_ARCHITECTURE"
280-
Write-Host "PROCESSOR_ARCHITEW6432: $env:PROCESSOR_ARCHITEW6432"
281-
282-
# Try to install Scoop if nothing else works
259+
# Use Scoop for ARM64-compatible packages
283260
if (!(Get-Command scoop -ErrorAction SilentlyContinue)) {
284-
Write-Host "Installing Scoop..."
285261
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
286262
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
287263
$env:PATH = "$env:USERPROFILE\scoop\shims;$env:PATH"
288264
echo "$env:USERPROFILE\scoop\shims" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
289265
}
290266
291-
# Install dependencies via Scoop
292-
scoop bucket add main
293-
scoop install cmake ninja python ruby perl llvm
267+
# Install ARM64-compatible tools via Scoop
268+
scoop install cmake ninja python
269+
270+
# Install Ruby manually for ARM64 (Scoop doesn't have ARM64 Ruby)
271+
$rubyUrl = "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.6-1/rubyinstaller-devkit-3.3.6-1-x64.exe"
272+
$rubyExe = "$env:TEMP\ruby.exe"
273+
Invoke-WebRequest -Uri $rubyUrl -OutFile $rubyExe
274+
Start-Process -FilePath $rubyExe -ArgumentList "/VERYSILENT", "/NORESTART", "/DIR=C:\Ruby33-x64" -Wait
275+
echo "C:\Ruby33-x64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
276+
277+
# Install Strawberry Perl for x64 (works on ARM64 via emulation)
278+
choco install strawberryperl -y --no-progress
279+
280+
# Install LLVM via Chocolatey (has ARM64 support)
281+
choco install llvm -y --no-progress --version=19.1.4
294282
295-
# Install vcpkg manually
283+
# Install vcpkg
296284
git clone https://github.com/Microsoft/vcpkg.git C:\vcpkg
297285
cd C:\vcpkg
298286
.\bootstrap-vcpkg.bat

0 commit comments

Comments
 (0)