Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 22 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ jobs:
test-windows:
needs: build-windows-tests
name: Test (Windows)
runs-on: windows-latest
runs-on: namespace-profile-windows-4c-8g
steps:
- uses: taiki-e/checkout-action@7d1e50e93dc4fb3bba58f85018fadf77898aee8b # v1.4.2
- uses: ./.github/actions/clone
Expand Down Expand Up @@ -374,7 +374,7 @@ jobs:
target: x86_64-unknown-linux-gnu
- os: namespace-profile-mac-default
target: aarch64-apple-darwin
- os: windows-latest
- os: namespace-profile-windows-4c-8g
target: x86_64-pc-windows-msvc
Comment thread
fengmk2 marked this conversation as resolved.
runs-on: ${{ matrix.os }}
steps:
Expand Down Expand Up @@ -498,7 +498,7 @@ jobs:
node --version

- name: Test global package install (cmd)
if: ${{ matrix.os == 'windows-latest' }}
if: ${{ runner.os == 'Windows' }}
shell: cmd
run: |
echo "PATH: %PATH%"
Expand Down Expand Up @@ -682,7 +682,7 @@ jobs:
}

- name: Test upgrade (cmd)
if: ${{ matrix.os == 'windows-latest' }}
if: ${{ runner.os == 'Windows' }}
shell: cmd
run: |
REM See bash block above for why we assert on the install dir basename.
Expand Down Expand Up @@ -719,7 +719,7 @@ jobs:
)

- name: Test same-version forced upgrade (Windows)
if: ${{ matrix.os == 'windows-latest' }}
if: ${{ runner.os == 'Windows' }}
shell: pwsh
run: |
# Force-reinstall the published `latest` version rather than the local
Expand Down Expand Up @@ -771,7 +771,7 @@ jobs:
}

- name: Test same-version forced upgrade (Unix)
if: ${{ matrix.os != 'windows-latest' }}
if: ${{ runner.os != 'Windows' }}
shell: bash
run: |
# Unix mirror of the Windows same-version forced-upgrade test above.
Expand Down Expand Up @@ -877,7 +877,7 @@ jobs:
vp --version

- name: Test implode (cmd)
if: ${{ matrix.os == 'windows-latest' }}
if: ${{ runner.os == 'Windows' }}
shell: cmd
run: |
REM Retry — Windows file locks can cause transient "Access is denied" errors
Expand Down Expand Up @@ -932,15 +932,15 @@ jobs:
target: aarch64-apple-darwin
shard: 3
shardTotal: 3
- os: windows-latest
- os: namespace-profile-windows-4c-8g
Comment thread
fengmk2 marked this conversation as resolved.
target: x86_64-pc-windows-msvc
shard: 1
shardTotal: 3
- os: windows-latest
- os: namespace-profile-windows-4c-8g
target: x86_64-pc-windows-msvc
shard: 2
shardTotal: 3
- os: windows-latest
- os: namespace-profile-windows-4c-8g
target: x86_64-pc-windows-msvc
shard: 3
shardTotal: 3
Expand All @@ -949,6 +949,11 @@ jobs:
- uses: taiki-e/checkout-action@7d1e50e93dc4fb3bba58f85018fadf77898aee8b # v1.4.2
- uses: ./.github/actions/clone

# Dev Drive works on the Namespace Windows runner: setup-dev-drive v4
# creates and mounts its ReFS VHD on namespace-profile-windows-4c-8g, and
# all three Windows shards pass with this step succeeding (nested
# virtualization is available there). Only cli-snapshot-test-windows moved
# off Namespace, and for an unrelated reason (Session-0 ConPTY, see there).
- name: Setup Dev Drive
if: runner.os == 'Windows'
uses: samypr100/setup-dev-drive@30f0f98ae5636b2b6501e181dfb3631b9974818d # v4.0.0
Expand Down Expand Up @@ -1099,6 +1104,12 @@ jobs:
- download-previous-rolldown-binaries
- build-windows-cli
- build-windows-tests
# Stays on GitHub-hosted windows-latest, NOT the Namespace Windows runner:
# this is a PTY snapshot suite. The runner opens a pseudo-console (ConPTY)
# and spawns vp into it, but Namespace's Windows runners execute jobs under a
# Session-0 service account with no interactive console, where that ConPTY
# spawn blocks — vp is never launched and every case times out at 60s.
# windows-latest runs in a session where ConPTY works.
runs-on: windows-latest
steps:
- uses: taiki-e/checkout-action@7d1e50e93dc4fb3bba58f85018fadf77898aee8b # v1.4.2
Expand Down Expand Up @@ -1358,7 +1369,7 @@ jobs:
sfw_asset: sfw-free-macos-arm64
vp_bin: vp
vp_insecure_tls: ''
- os: windows-latest
- os: namespace-profile-windows-4c-8g
target: x86_64-pc-windows-msvc
sfw_asset: sfw-free-windows-x86_64.exe
# On Windows vp ships as `vp.exe`; sfw spawns its child process
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/e2e-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ jobs:
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
- os: windows-latest
- os: namespace-profile-windows-4c-8g
target: x86_64-pc-windows-msvc
steps:
- uses: taiki-e/checkout-action@7d1e50e93dc4fb3bba58f85018fadf77898aee8b # v1.4.2
Expand Down Expand Up @@ -189,7 +189,7 @@ jobs:
matrix:
os:
- ubuntu-latest
- windows-latest
- namespace-profile-windows-4c-8g
project:
- name: vibe-dashboard
node-version: 24
Expand Down Expand Up @@ -398,27 +398,27 @@ jobs:
vp run test:coverage
exclude:
# frm-stack uses Docker (testcontainers) which doesn't work the same way on Windows
- os: windows-latest
- os: namespace-profile-windows-4c-8g
project:
name: frm-stack
# dify only runs on Linux for now
- os: windows-latest
- os: namespace-profile-windows-4c-8g
project:
name: dify
# vinext uses workerd native deps that don't build on Windows
- os: windows-latest
- os: namespace-profile-windows-4c-8g
project:
name: vinext
# yaak is a Tauri app with Rust/wasm deps
- os: windows-latest
- os: namespace-profile-windows-4c-8g
project:
name: yaak
# npmx.dev is a Nuxt app, ubuntu-only for now
- os: windows-latest
- os: namespace-profile-windows-4c-8g
project:
name: npmx.dev
# varlet upstream CI is ubuntu-only
- os: windows-latest
- os: namespace-profile-windows-4c-8g
project:
name: varlet

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/reusable-release-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ jobs:
- target: x86_64-unknown-linux-musl
os: ubuntu-latest
- target: x86_64-pc-windows-msvc
os: windows-latest
os: namespace-profile-windows-4c-8g
- target: aarch64-pc-windows-msvc
os: windows-latest
os: namespace-profile-windows-4c-8g
steps:
- uses: taiki-e/checkout-action@7d1e50e93dc4fb3bba58f85018fadf77898aee8b # v1.4.2
- uses: ./.github/actions/clone
Expand Down
53 changes: 40 additions & 13 deletions .github/workflows/test-standalone-install.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,6 @@ defaults:
run:
shell: bash

env:
VP_VERSION: alpha

jobs:
test-install-sh:
name: Test install.sh (${{ matrix.name }})
Expand Down Expand Up @@ -168,7 +165,6 @@ jobs:
run: |
docker run --rm --platform linux/arm64 \
-v "${{ github.workspace }}:/workspace" \
-e VP_VERSION=alpha \
ubuntu:20.04 bash -c "
ls -al ~/
apt-get update && apt-get install -y curl ca-certificates
Expand Down Expand Up @@ -227,7 +223,6 @@ jobs:
run: |
docker run --rm \
-v "${{ github.workspace }}:/workspace" \
-e VP_VERSION=alpha \
-e CI=true \
alpine:3.21 sh -c "
# libstdc++: required by unofficial-builds Node.js musl binary
Expand Down Expand Up @@ -285,7 +280,6 @@ jobs:
run: |
docker run --rm --platform linux/arm64 \
-v "${{ github.workspace }}:/workspace" \
-e VP_VERSION=alpha \
-e CI=true \
alpine:3.21 sh -c "
# libstdc++ is needed by unofficial-builds Node.js musl binary
Expand Down Expand Up @@ -329,12 +323,20 @@ jobs:

test-install-ps1-v5:
name: Test install.ps1 (Windows x64, PowerShell 5.1)
runs-on: windows-latest
runs-on: namespace-profile-windows-4c-8g
permissions:
contents: read
steps:
- uses: taiki-e/checkout-action@7d1e50e93dc4fb3bba58f85018fadf77898aee8b # v1.4.2

- name: Pin VP_HOME to USERPROFILE
# Namespace's Windows runners run jobs under a service account whose real
# profile (C:\Windows\system32\config\systemprofile) differs from
# %USERPROFILE%; vp resolves its home from the OS profile. Pin VP_HOME so
# the install, generated shims, and these assertions share one location.
shell: bash
run: echo "VP_HOME=$USERPROFILE\.vite-plus" >> $GITHUB_ENV

- name: Assert PowerShell 5.x
shell: powershell
run: |
Expand Down Expand Up @@ -478,16 +480,27 @@ jobs:

test-install-ps1-v76:
name: Test install.ps1 (Windows x64, PowerShell 7.6)
runs-on: windows-latest
runs-on: namespace-profile-windows-4c-8g
permissions:
contents: read
steps:
- uses: taiki-e/checkout-action@7d1e50e93dc4fb3bba58f85018fadf77898aee8b # v1.4.2

- name: Pin VP_HOME to USERPROFILE
# Namespace's Windows runners run jobs under a service account whose real
# profile (C:\Windows\system32\config\systemprofile) differs from
# %USERPROFILE%; vp resolves its home from the OS profile. Pin VP_HOME so
# the install, generated shims, and these assertions share one location.
shell: bash
run: echo "VP_HOME=$USERPROFILE\.vite-plus" >> $GITHUB_ENV

- name: Install PowerShell 7.6
shell: pwsh
run: |
dotnet tool install --global PowerShell --version 7.6.0
# --tool-path (not --global): a global tool install resolves the target
# under the OS user profile, which is the service-account systemprofile
# on Namespace, not %USERPROFILE%. An explicit path is account-independent.
dotnet tool install --tool-path "$env:USERPROFILE\.dotnet\tools" PowerShell --version 7.6.0
$pwsh76 = "$env:USERPROFILE\.dotnet\tools\pwsh.exe"
echo "PWSH76=$pwsh76" >> $env:GITHUB_ENV
$ver = & $pwsh76 -NoProfile -Command '$PSVersionTable.PSVersion.ToString()'
Expand Down Expand Up @@ -558,7 +571,7 @@ jobs:

test-install-ps1-release-age:
name: Test install.ps1 (minimum-release-age)
runs-on: windows-latest
runs-on: namespace-profile-windows-4c-8g
permissions:
contents: read
steps:
Expand Down Expand Up @@ -636,6 +649,14 @@ jobs:

test-install-ps1:
name: Test install.ps1 (Windows x64)
# Stays on GitHub-hosted windows-latest, NOT the Namespace Windows runner.
# This job runs `vp env doctor` under bash `set -e`, and doctor compares vp's
# resolved home against PATH. Namespace's Windows runners execute jobs under a
# Session-0 service account whose real profile is
# C:\Windows\system32\config\systemprofile, not %USERPROFILE%, so even with
# VP_HOME set the installed vp resolves the systemprofile home and doctor
# fails. The other install jobs pass on Namespace because they don't run
# `vp env doctor` under `set -e`.
runs-on: windows-latest
permissions:
contents: read
Expand Down Expand Up @@ -789,13 +810,21 @@ jobs:

test-vp-setup-exe:
name: Test vp-setup.exe (pwsh)
runs-on: windows-latest
runs-on: namespace-profile-windows-4c-8g
permissions:
contents: read
steps:
- uses: taiki-e/checkout-action@7d1e50e93dc4fb3bba58f85018fadf77898aee8b # v1.4.2
- uses: ./.github/actions/clone

- name: Pin VP_HOME to USERPROFILE
# Namespace's Windows runners run jobs under a service account whose real
# profile (C:\Windows\system32\config\systemprofile) differs from
# %USERPROFILE%; vp-setup.exe installs into VP_HOME (falling back to the OS
# profile). Pin it so the install and these assertions share one location.
shell: bash
run: echo "VP_HOME=$USERPROFILE\.vite-plus" >> $GITHUB_ENV

- name: Setup Dev Drive
uses: samypr100/setup-dev-drive@30f0f98ae5636b2b6501e181dfb3631b9974818d # v4.0.0
with:
Expand All @@ -816,8 +845,6 @@ jobs:
- name: Install via vp-setup.exe (silent)
shell: pwsh
run: ${{ format('{0}/target/release/vp-setup.exe', env.DEV_DRIVE) }}
Comment thread
fengmk2 marked this conversation as resolved.
env:
VP_VERSION: alpha

- name: Set PATH
shell: bash
Expand Down
Loading