Skip to content

Commit 5d96ecf

Browse files
committed
feat(release): add Windows ARM64 (aarch64-pc-windows-msvc) support
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. Document supported platforms in the getting started guide.
1 parent e999934 commit 5d96ecf

4 files changed

Lines changed: 86 additions & 9 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: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,73 @@ jobs:
254254
vp upgrade --rollback
255255
vp --version
256256
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-f74442ad.20260222-0755
320+
vp --version
321+
vp upgrade --rollback
322+
vp --version
323+
257324
test-install-ps1:
258325
name: Test install.ps1 (Windows x64)
259326
runs-on: windows-latest

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)