From 4472cbae6db1bc2e9e2fded9537f65745dff49da Mon Sep 17 00:00:00 2001 From: PengweeWang Date: Wed, 4 Nov 2026 00:43:37 +0800 Subject: [PATCH] ci: add Windows ARM64 build artifact Add a Windows ARM64 CI job with PowerShell warm-up, tests, release build, and artifact upload for ELYTerminal-windows-aarch64. --- .github/workflows/ci.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 57da285a..bd6f442b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,6 +16,36 @@ jobs: - run: scripts/check.sh - run: cargo build --locked + windows-arm: + runs-on: windows-11-arm + env: + CARGO_PROFILE_DEV_DEBUG: 0 + steps: + - uses: actions/checkout@v7 + - run: rustup toolchain install --no-self-update + # Warm up PowerShell to avoid an intermittent first-start failure in the ARM64 shell tests. + - name: Warm up Windows PowerShell + shell: pwsh + run: | + $powershell = "$env:WINDIR\System32\WindowsPowerShell\v1.0\powershell.exe" + & $powershell -NoProfile -NonInteractive -Command "Write-Output 'PowerShell warm-up complete'" + if ($LASTEXITCODE -ne 0) { + throw "Windows PowerShell warm-up failed with exit code $LASTEXITCODE" + } + - run: cargo test --locked --quiet + - run: cargo build --locked + - name: Build Windows ARM64 package + shell: pwsh + run: ./scripts/windows-zip.ps1 + - name: Keep Windows ARM64 package + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 + with: + name: ELYTerminal-windows-aarch64 + if-no-files-found: error + compression-level: 0 + retention-days: 14 + path: target/release/ELYTerminal-*-windows-aarch64.zip + windows: runs-on: [self-hosted, ely-windows] env: