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
10 changes: 10 additions & 0 deletions .github/workflows/reusable-ecosystem-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,10 @@ jobs:
# Avoid Windows dynamic port reservations around the default 63315.
# https://github.com/vitest-dev/vitest/issues/9035
ECOSYSTEM_VITEST_PORT: '7357'
# Without a project pin, vp runs project commands on the latest LTS.
# `node-version` only selects the bootstrap Node.js for actions/setup-node.
# vp ignores an empty value.
VP_NODE_VERSION: ${{ matrix.project.vp-node-version || '' }}
permissions:
contents: read
packages: read
Expand Down Expand Up @@ -251,6 +255,8 @@ jobs:
vp test
- name: vinext
node-version: 24
# better-sqlite3 12.6.2 does not compile against the Node 26 headers.
vp-node-version: 24.22.1
# The full vinext suite (~7000 tests) outgrew a 15-minute budget
# on 4-core runners, so run one shard of the unit project here;
# the rest of the suite is covered by vinext's own CI.
Expand Down Expand Up @@ -375,11 +381,15 @@ jobs:
vp test run --project browser --browser.name=chrome --api.port="$ECOSYSTEM_VITEST_PORT"
- name: sqlocal
node-version: 24
# The WebDriverIO provider cannot connect to Chrome on Node 26 (see #3266).
vp-node-version: 24.22.1
command: |
# OPFS setup can exceed the upstream 1-second hook timeout on CI.
vp test run --browser.name=chrome --hookTimeout=5000 --api.port="$ECOSYSTEM_VITEST_PORT"
- name: brazilian-utils
node-version: 24
# The WebDriverIO provider cannot connect to Chrome on Node 26 (see #3266).
vp-node-version: 24.22.1
command: |
vp test run --browser.enabled --browser.name=chrome --browser.headless --api.port="$ECOSYSTEM_VITEST_PORT"
- name: solid-vite-plugin
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/test-standalone-install.yml
Original file line number Diff line number Diff line change
Expand Up @@ -781,7 +781,8 @@ jobs:
-v "${{ github.workspace }}:/workspace" \
ubuntu:20.04 bash -c "
ls -al ~/
apt-get update && apt-get install -y curl ca-certificates
# The ARM64 Node.js runtime requires libatomic.so.1.
apt-get update && apt-get install -y curl ca-certificates libatomic1
export VP_HOME=\"\$HOME/.vite-plus\"
cat /workspace/packages/cli/install.sh | VP_LEGACY_INSTALLER_URL=file:///workspace/packages/cli/install-legacy.sh bash
if [ -f ~/.profile ]; then
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name = "command_env_list_remote"
vp = "global"
skip-platforms = ["windows"]
seed-runtime = false
# CI prepares the LTS runtime in the seed, so `vp env install lts` does not download it.
steps = [
{ argv = ["vp", "env", "default", "node"], comment = "An unconfigured Node.js default explains the effective fallback without claiming it was set in config", continue-on-failure = true },
{ argv = ["vp", "env", "install", "lts"], comment = "Install an LTS Node.js version locally", continue-on-failure = true },
Expand Down
11 changes: 11 additions & 0 deletions ecosystem-ci/webdriverio.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,17 @@ export async function prepareWebdriverioProject(
'{ timeout: 10000 }',
);

// The memory, local, and session variants all use database.sqlite3 in OPFS.
// deleteDatabaseFile reopens the file, and the test never destroys its clients.
// A client from an earlier variant can still hold the file when a later
// variant removes it, which throws NoModificationAllowedError.
// Remove when upstream destroys these clients.
await replaceOnce(
join(root, 'test', 'get-database-file.test.ts'),
'await deleteDatabaseFile();',
'await deleteDatabaseFile(undefined, true);',
);

// Deleting client3 broadcasts a reconnect to client2 without awaiting it.
// Wait for client2 to recreate the OPFS file before checking its handle.
// Remove when upstream waits for the other client's asynchronous reconnect.
Expand Down
Loading