@@ -254,29 +254,54 @@ jobs:
254254 runs-on : ${{ matrix.runner }}
255255 timeout-minutes : 90
256256 steps :
257- - name : Install WinGet and dependencies
257+ - name : Install dependencies manually
258258 run : |
259- # Download and install WinGet manually
260- $url = "https://github.com/microsoft/winget-cli/releases/latest/download/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
261- $output = "$env:TEMP\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
262- Invoke-WebRequest -Uri $url -OutFile $output
263- Add-AppxPackage -Path $output
259+ # Create tools directory
260+ New-Item -ItemType Directory -Path C:\tools -Force
264261
265- # Add WinGet to PATH
266- $wingetPath = "${env:LOCALAPPDATA}\Microsoft\WindowsApps"
267- $env:PATH = "$wingetPath;$env:PATH"
268- echo "$wingetPath" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
262+ # Download and install CMake ARM64
263+ $cmakeUrl = "https://github.com/Kitware/CMake/releases/latest/download/cmake-3.30.5-windows-arm64.zip"
264+ $cmakeZip = "$env:TEMP\cmake.zip"
265+ Invoke-WebRequest -Uri $cmakeUrl -OutFile $cmakeZip
266+ Expand-Archive -Path $cmakeZip -DestinationPath C:\tools\cmake -Force
267+ $cmakePath = (Get-ChildItem -Path C:\tools\cmake -Directory | Select-Object -First 1).FullName
268+ echo "$cmakePath\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
269269
270- # Wait for WinGet to be ready
271- Start-Sleep -Seconds 10
270+ # Download and install Ninja
271+ $ninjaUrl = "https://github.com/ninja-build/ninja/releases/latest/download/ninja-win.zip"
272+ $ninjaZip = "$env:TEMP\ninja.zip"
273+ Invoke-WebRequest -Uri $ninjaUrl -OutFile $ninjaZip
274+ New-Item -ItemType Directory -Path C:\tools\ninja -Force
275+ Expand-Archive -Path $ninjaZip -DestinationPath C:\tools\ninja -Force
276+ echo "C:\tools\ninja" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
272277
273- # Install dependencies with WinGet
274- winget install --id=Kitware.CMake -e --silent --accept-source-agreements --accept-package-agreements
275- winget install --id=Ninja-build.Ninja -e --silent --accept-source-agreements --accept-package-agreements
276- winget install --id=Python.Python.3.13 -e --silent --accept-source-agreements --accept-package-agreements
277- winget install --id=RubyInstaller.Ruby -e --silent --accept-source-agreements --accept-package-agreements
278- winget install --id=StrawberryPerl.StrawberryPerl -e --silent --accept-source-agreements --accept-package-agreements
279- winget install --id=LLVM.LLVM -e --silent --accept-source-agreements --accept-package-agreements
278+ # Download and install Python ARM64
279+ $pythonUrl = "https://www.python.org/ftp/python/3.13.1/python-3.13.1-arm64.exe"
280+ $pythonExe = "$env:TEMP\python.exe"
281+ Invoke-WebRequest -Uri $pythonUrl -OutFile $pythonExe
282+ Start-Process -FilePath $pythonExe -ArgumentList "/quiet", "InstallAllUsers=1", "PrependPath=1", "Include_test=0" -Wait
283+
284+ # Download and install Ruby ARM64
285+ $rubyUrl = "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.6-1/rubyinstaller-3.3.6-1-arm64.exe"
286+ $rubyExe = "$env:TEMP\ruby.exe"
287+ Invoke-WebRequest -Uri $rubyUrl -OutFile $rubyExe
288+ Start-Process -FilePath $rubyExe -ArgumentList "/VERYSILENT", "/NORESTART", "/DIR=C:\Ruby33-arm64" -Wait
289+ echo "C:\Ruby33-arm64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
290+
291+ # Download and install Strawberry Perl
292+ $perlUrl = "https://strawberryperl.com/download/5.40.0.1/strawberry-perl-5.40.0.1-64bit.msi"
293+ $perlMsi = "$env:TEMP\perl.msi"
294+ Invoke-WebRequest -Uri $perlUrl -OutFile $perlMsi
295+ Start-Process -FilePath "msiexec.exe" -ArgumentList "/i", $perlMsi, "/quiet", "/norestart" -Wait
296+ echo "C:\strawberry\perl\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
297+ echo "C:\strawberry\c\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
298+
299+ # Download and install LLVM 19 ARM64
300+ $llvmUrl = "https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.4/LLVM-19.1.4-woa64.exe"
301+ $llvmExe = "$env:TEMP\llvm.exe"
302+ Invoke-WebRequest -Uri $llvmUrl -OutFile $llvmExe
303+ Start-Process -FilePath $llvmExe -ArgumentList "/S", "/D=C:\LLVM" -Wait
304+ echo "C:\LLVM\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
280305
281306 # Install vcpkg manually
282307 git clone https://github.com/Microsoft/vcpkg.git C:\vcpkg
0 commit comments