mirror of
https://github.com/anomalyco/opencode.git
synced 2026-04-28 08:44:54 +00:00
ci: move arm64 tauri test to windows-2025
Use GitHub-hosted Windows for the temporary Tauri ARM64 test job because the Blacksmith Windows Build Tools image does not expose the ARM64 MSVC linker/libs we need. The hosted Windows images already include LLVM and VC.Tools.ARM64, so we can drop the custom installer and linker hacks.
This commit is contained in:
54
.github/workflows/test-windows-arm64.yml
vendored
54
.github/workflows/test-windows-arm64.yml
vendored
@@ -34,7 +34,7 @@ jobs:
|
||||
|
||||
build-tauri:
|
||||
needs: build-cli
|
||||
runs-on: blacksmith-4vcpu-windows-2025
|
||||
runs-on: windows-2025
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
@@ -70,58 +70,6 @@ jobs:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
GITHUB_RUN_ID: ${{ github.run_id }}
|
||||
|
||||
- name: Install Windows ARM64 MSVC tools
|
||||
shell: pwsh
|
||||
run: |
|
||||
$vswhere = Join-Path ${env:ProgramFiles(x86)} "Microsoft Visual Studio\Installer\vswhere.exe"
|
||||
if (!(Test-Path $vswhere)) { throw "vswhere.exe not found at $vswhere" }
|
||||
$root = & $vswhere -latest -products * -property installationPath
|
||||
if (!$root) { throw "Visual Studio installation not found" }
|
||||
$setup = Join-Path ${env:ProgramFiles(x86)} "Microsoft Visual Studio\Installer\setup.exe"
|
||||
if (!(Test-Path $setup)) { throw "setup.exe not found at $setup" }
|
||||
& $setup modify --installPath "$root" --add Microsoft.VisualStudio.Component.VC.Tools.ARM64 --quiet --norestart
|
||||
if ($LASTEXITCODE -ne 0) { throw "setup.exe exited with code $LASTEXITCODE" }
|
||||
|
||||
- name: Setup Windows ARM64 MSVC
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
arch: amd64_arm64
|
||||
|
||||
- name: Setup Windows ARM64 clang
|
||||
shell: pwsh
|
||||
run: |
|
||||
choco install llvm --yes --no-progress
|
||||
$bin = @(
|
||||
"C:\Program Files\LLVM\bin",
|
||||
"C:\Program Files (x86)\LLVM\bin"
|
||||
) | Where-Object { Test-Path (Join-Path $_ "clang.exe") } | Select-Object -First 1
|
||||
if (!$bin) {
|
||||
$bin = Get-Command clang -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Source -ErrorAction SilentlyContinue | Split-Path
|
||||
}
|
||||
if (!$bin) { throw "clang.exe not found after installing llvm" }
|
||||
$env:PATH = "$bin;$env:PATH"
|
||||
Add-Content -Path $env:GITHUB_PATH -Value $bin
|
||||
clang --version
|
||||
|
||||
- name: Force Windows ARM64 linker env
|
||||
shell: pwsh
|
||||
run: |
|
||||
$sdk = $env:WindowsSDKVersion.TrimEnd("\\")
|
||||
$ucrt = Join-Path $env:WindowsSdkDir "Lib\$sdk\ucrt\arm64"
|
||||
$um = Join-Path $env:WindowsSdkDir "Lib\$sdk\um\arm64"
|
||||
$msvc = Join-Path $env:VCToolsInstallDir "lib\arm64"
|
||||
$bin = Join-Path $env:VCToolsInstallDir "bin\HostX64\arm64"
|
||||
$kit = Join-Path $env:WindowsSdkDir "bin\$sdk\x64"
|
||||
$link = Join-Path $bin "link.exe"
|
||||
$miss = @($ucrt, $um, $msvc, $bin, $link) | Where-Object { !(Test-Path $_) }
|
||||
if ($miss) { throw "missing ARM64 tool paths: $($miss -join ', ')" }
|
||||
"LIB=$ucrt;$um;$msvc" | Add-Content -Path $env:GITHUB_ENV
|
||||
"CARGO_TARGET_AARCH64_PC_WINDOWS_MSVC_LINKER=$link" | Add-Content -Path $env:GITHUB_ENV
|
||||
Add-Content -Path $env:GITHUB_PATH -Value $bin
|
||||
Add-Content -Path $env:GITHUB_PATH -Value $kit
|
||||
Write-Host "Using linker: $link"
|
||||
Write-Host "Using LIB: $ucrt;$um;$msvc"
|
||||
|
||||
- name: Build and upload artifacts
|
||||
uses: tauri-apps/tauri-action@390cbe447412ced1303d35abe75287949e43437a
|
||||
timeout-minutes: 60
|
||||
|
||||
Reference in New Issue
Block a user