ci(e2e): run npm/npx via corepack, not the absent npm24 #330

Merged
David merged 5 commits from fix/PMS-462-e2e-corepack-npm into main 2026-06-21 18:28:28 +02:00
Owner

The opensuse-base runner image ships only node24 plus corepack and bun as
the JS toolchain. It has no standalone npm: the bare npm/npx are
libalternatives wrappers whose target /usr/bin/npm-default is missing
(bare npm ci exits 255), and the versioned npm24/npx24 binaries PMS-429
reached for are not installed at all (npm24: command not found, exit 127).
corepack IS present and provisions npm 11.x on demand, so invoke npm and
npx through corepack while keeping the concrete node24 binary for the
.mjs gate scripts. Verified in ghcr.io/niceguyit/opensuse-base:latest-leap-16.0:
corepack npm ci resolves and corepack npx playwright runs non-interactively.

#PMS-462

The opensuse-base runner image ships only node24 plus corepack and bun as the JS toolchain. It has no standalone npm: the bare npm/npx are libalternatives wrappers whose target /usr/bin/npm-default is missing (bare npm ci exits 255), and the versioned npm24/npx24 binaries PMS-429 reached for are not installed at all (npm24: command not found, exit 127). corepack IS present and provisions npm 11.x on demand, so invoke npm and npx through corepack while keeping the concrete node24 binary for the .mjs gate scripts. Verified in ghcr.io/niceguyit/opensuse-base:latest-leap-16.0: corepack npm ci resolves and corepack npx playwright runs non-interactively. #PMS-462
ci(e2e): use runner's preinstalled nodejs24 instead of setup-node
Some checks failed
E2E / Playwright against staging (pull_request) Failing after 5s
Check / fmt + clippy + compile + unit/doc tests (pull_request) Successful in 59s
Integration / integration tests (pull_request) Failing after 5m50s
Create release / Create release from merged PR (pull_request) Has been skipped
6b2b286da1
The opensuse-base runner image already ships nodejs24, so the
actions/setup-node@v4 step downloaded a redundant Node 20 toolchain. Drop
that step and rely on node/npm/npx from PATH. With setup-node gone, the
RUNNER_TOOL_CACHE env var and "Prepare tool cache directory" step (which
existed only to satisfy setup-node's tool-cache write on this image) and
their explanatory comment are now dead and removed.

claude-fix.yml is intentionally left untouched.

#PMS-420
ci(e2e): invoke versioned node24/npm24/npx24 binaries
Some checks failed
E2E / Playwright against staging (pull_request) Failing after 3s
Check / fmt + clippy + compile + unit/doc tests (pull_request) Successful in 1m11s
Integration / integration tests (pull_request) Failing after 3m21s
ec767bc014
PMS-420 dropped actions/setup-node to use the opensuse-base runner's preinstalled nodejs24, but called the unversioned node/npm/npx. On that image the bare `npm` is the nodejs-common alternatives wrapper, which dispatches to `/usr/bin/npm-default`; that target is absent on the runner, so `npm ci` died with `/usr/bin/npm-default: No such file or directory` (exit 255) and the e2e job failed.

The nodejs24/npm24 packages install /usr/bin/node24, /usr/bin/npm24 and /usr/bin/npx24 directly. Calling the versioned binaries bypasses the broken alternatives indirection while keeping the preinstalled-runtime intent. Verified node24 (v24.14.1), npm24 (11.11.0) and npx24 resolve and run on a fresh opensuse/leap:16.0 + nodejs24 install.

#PMS-429
Merge branch 'main' into fix/PMS-429-e2e-versioned-node-binaries
Some checks failed
E2E / Playwright against staging (pull_request) Failing after 4s
Check / fmt + clippy + compile + unit/doc tests (pull_request) Successful in 1m7s
Integration / integration tests (pull_request) Successful in 3m49s
7a21cc2716
Merge branch 'main' into fix/PMS-429-e2e-versioned-node-binaries
Some checks failed
E2E / Playwright against staging (pull_request) Failing after 4s
Check / fmt + clippy + build + tests (pull_request) Successful in 1m9s
Integration / integration tests (pull_request) Successful in 4m18s
Create release / Create release from merged PR (pull_request) Successful in 1s
7f258aabb3
ci(e2e): run npm/npx via corepack, not the absent npm24
Some checks failed
E2E / Playwright against staging (pull_request) Successful in 1m1s
Check / fmt + clippy + build + tests (pull_request) Successful in 3m19s
Integration / integration tests (pull_request) Failing after 5m10s
Create release / Create release from merged PR (pull_request) Successful in 4s
8258de5027
The opensuse-base runner image ships only node24 plus corepack and bun as
the JS toolchain. It has no standalone npm: the bare npm/npx are
libalternatives wrappers whose target /usr/bin/npm-default is missing
(bare npm ci exits 255), and the versioned npm24/npx24 binaries PMS-429
reached for are not installed at all (npm24: command not found, exit 127).
corepack IS present and provisions npm 11.x on demand, so invoke npm and
npx through corepack while keeping the concrete node24 binary for the
.mjs gate scripts. Verified in ghcr.io/niceguyit/opensuse-base:latest-leap-16.0:
corepack npm ci resolves and corepack npx playwright runs non-interactively.

#PMS-462
David merged commit ea44c801fd into main 2026-06-21 18:28:28 +02:00
David deleted branch fix/PMS-462-e2e-corepack-npm 2026-06-21 18:28:28 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/mokosh-server!330
No description provided.