Skip to content

Commit d8fe16b

Browse files
authored
feat(release): add Windows ARM64 (aarch64-pc-windows-msvc) support (#656)
## Summary - Add `aarch64-pc-windows-msvc` as a build target in the release pipeline, NAPI config, and publish scripts - Add install test job for Windows ARM64 (`windows-11-arm` runner) - Document supported platforms in the getting started guide voidzero-dev/vite-plus-discussions#13
1 parent e27b3f1 commit d8fe16b

4 files changed

Lines changed: 90 additions & 13 deletions

File tree

.github/workflows/release.yml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ jobs:
5252
os: ubuntu-latest
5353
- target: x86_64-pc-windows-msvc
5454
os: windows-latest
55+
- target: aarch64-pc-windows-msvc
56+
os: windows-latest
5557
steps:
5658
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
5759
- uses: ./.github/actions/clone
@@ -64,14 +66,6 @@ jobs:
6466
- name: Rustup Adds Target
6567
run: rustup target add ${{ matrix.settings.target }}
6668

67-
- name: Add musl target (x86_64)
68-
if: ${{ matrix.settings.target == 'x86_64-unknown-linux-gnu' }}
69-
run: rustup target add x86_64-unknown-linux-musl
70-
71-
- name: Add musl target (aarch64)
72-
if: ${{ matrix.settings.target == 'aarch64-unknown-linux-gnu' }}
73-
run: rustup target add aarch64-unknown-linux-musl
74-
7569
- uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4
7670

7771
- name: Set binding version

.github/workflows/test-standalone-install.yml

Lines changed: 71 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ jobs:
108108
run: |
109109
# --check queries npm registry and prints update status
110110
vp upgrade --check
111-
vp upgrade 0.0.0-f74442ad.20260222-0755
111+
vp upgrade 0.0.0-gbe8891a5.20260227-1615
112112
vp --version
113113
# rollback to the previous version (should succeed after a real update)
114114
vp upgrade --rollback
@@ -168,7 +168,7 @@ jobs:
168168
169169
# Verify upgrade
170170
vp upgrade --check
171-
vp upgrade 0.0.0-f74442ad.20260222-0755
171+
vp upgrade 0.0.0-gbe8891a5.20260227-1615
172172
vp --version
173173
vp upgrade --rollback
174174
vp --version
@@ -249,7 +249,74 @@ jobs:
249249
shell: powershell
250250
run: |
251251
vp upgrade --check
252-
vp upgrade 0.0.0-f74442ad.20260222-0755
252+
vp upgrade 0.0.0-gbe8891a5.20260227-1615
253+
vp --version
254+
vp upgrade --rollback
255+
vp --version
256+
257+
test-install-ps1-arm64:
258+
name: Test install.ps1 (Windows ARM64)
259+
runs-on: windows-11-arm
260+
permissions:
261+
contents: read
262+
steps:
263+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
264+
265+
- name: Run install.ps1
266+
shell: pwsh
267+
run: |
268+
& ./packages/cli/install.ps1
269+
270+
- name: Set PATH
271+
shell: bash
272+
run: |
273+
echo "$USERPROFILE\.vite-plus\bin" >> $GITHUB_PATH
274+
275+
- name: Verify installation
276+
shell: pwsh
277+
working-directory: ${{ runner.temp }}
278+
run: |
279+
Write-Host "PATH: $env:Path"
280+
vp --version
281+
vp --help
282+
vp create vite --no-interactive --no-agent -- hello --no-interactive -t vanilla
283+
cd hello
284+
vp run build
285+
vp --version
286+
287+
- name: Verify bin setup
288+
shell: pwsh
289+
run: |
290+
$binPath = "$env:USERPROFILE\.vite-plus\bin"
291+
Get-ChildItem -Force $binPath
292+
if (-not (Test-Path $binPath)) {
293+
Write-Error "Bin directory not found: $binPath"
294+
exit 1
295+
}
296+
297+
$expectedShims = @("node.cmd", "npm.cmd", "npx.cmd")
298+
foreach ($shim in $expectedShims) {
299+
$shimFile = Join-Path $binPath $shim
300+
if (-not (Test-Path $shimFile)) {
301+
Write-Error "Shim not found: $shimFile"
302+
exit 1
303+
}
304+
Write-Host "Found shim: $shimFile"
305+
}
306+
where.exe node
307+
where.exe npm
308+
where.exe npx
309+
where.exe vp
310+
311+
$env:Path = "$env:USERPROFILE\.vite-plus\bin;$env:Path"
312+
vp env doctor
313+
vp env run --node 24 -- node -p "process.versions"
314+
315+
- name: Verify upgrade
316+
shell: pwsh
317+
run: |
318+
vp upgrade --check
319+
vp upgrade 0.0.0-gbe8891a5.20260227-1615
253320
vp --version
254321
vp upgrade --rollback
255322
vp --version
@@ -277,7 +344,7 @@ jobs:
277344
run: |
278345
# --check queries npm registry and prints update status
279346
vp upgrade --check
280-
vp upgrade 0.0.0-f74442ad.20260222-0755
347+
vp upgrade 0.0.0-gbe8891a5.20260227-1615
281348
vp --version
282349
# rollback to the previous version (should succeed after a real update)
283350
vp upgrade --rollback

docs/vite/guide/index.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,21 @@ For Windows:
3232
irm https://staging.viteplus.dev/install.ps1 | iex
3333
```
3434

35+
::: details Supported platforms
36+
37+
Prebuilt binaries are distributed for the following platforms (grouped by [Node.js v24 platform support tier](https://github.com/nodejs/node/blob/v24.x/BUILDING.md#platform-list)):
38+
39+
- Tier 1
40+
- Linux x64 glibc (`x86_64-unknown-linux-gnu`)
41+
- Linux arm64 glibc (`aarch64-unknown-linux-gnu`)
42+
- Windows x64 (`x86_64-pc-windows-msvc`)
43+
- macOS x64 (`x86_64-apple-darwin`)
44+
- macOS arm64 (`aarch64-apple-darwin`)
45+
- Tier 2
46+
- Windows arm64 (`aarch64-pc-windows-msvc`)
47+
48+
:::
49+
3550
## Node.js Version Manager
3651

3752
Vite+ includes a built-in Node.js version manager. During installation, you can opt-in to let Vite+ manage your Node.js versions.

packages/cli/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,8 @@
339339
"x86_64-apple-darwin",
340340
"aarch64-unknown-linux-gnu",
341341
"x86_64-unknown-linux-gnu",
342-
"x86_64-pc-windows-msvc"
342+
"x86_64-pc-windows-msvc",
343+
"aarch64-pc-windows-msvc"
343344
]
344345
},
345346
"engines": {

0 commit comments

Comments
 (0)