From 6b87c4621a21f802115d27ffcbfb44e28abd1387 Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Fri, 27 Mar 2026 20:42:10 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20Windows=20standalone=20mode=20=E2=80=94?= =?UTF-8?q?=20bypass=20broken=20npm=20shims=20(#217)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: overwrite npm .cmd wrappers for @pnpm/exe on Windows npm creates .cmd wrappers that invoke bin entries through `node`, but @pnpm/exe bins are native executables, not JavaScript files. This causes pnpm commands to silently fail on Windows. * fix: copy pnpm.exe to .bin/ on Windows for standalone mode The .cmd wrapper approach didn't work because CMD doesn't properly wait for extensionless PE binaries. Instead, copy the actual .exe (and .cmd for pnpx) from @pnpm/exe into .bin/ so PATHEXT finds pnpm.exe directly, bypassing npm's broken node-wrapping shim. * fix: add @pnpm/exe dir to PATH on Windows instead of .bin shims On Windows, npm's .bin shims can't properly execute the extensionless native binaries from @pnpm/exe. Instead of trying to fix the shims, add the @pnpm/exe directory directly to PATH where pnpm.exe lives. * test: validate pnpm --version output in CI All version checks now capture output and assert it matches a semver pattern. Previously, a silently failing pnpm (exit 0, no output) would pass the tests. * debug: log pnpm --version output during setup * fix: remove duplicate addPath in setOutputs that shadowed pnpm.exe setOutputs called addPath(node_modules/.bin) AFTER installPnpm had already added the correct path (@pnpm/exe on Windows). Since GITHUB_PATH entries are prepended, .bin ended up first in PATH, causing PowerShell to find npm's broken shims instead of pnpm.exe. * fix: add PNPM_HOME/bin to PATH on all platforms * fix: address review feedback — PATH ordering and regex anchoring - Swap addPath order so pnpmHome (with pnpm.exe) is prepended last and has highest precedence over pnpmHome/bin. - Anchor version regex with $ and allow prerelease suffixes. --- .github/workflows/test.yaml | 36 ++++++++++++++++++++++++++++++++---- dist/index.js | Bin 1432028 -> 1432219 bytes src/install-pnpm/run.ts | 30 ++++++++++++++++++++---------- src/outputs/index.ts | 5 +++-- 4 files changed, 55 insertions(+), 16 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 3bcbf44..bbb7cc2 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -33,7 +33,14 @@ jobs: run: which pnpm; which pnpx - name: 'Test: version' - run: pnpm --version + run: | + actual="$(pnpm --version)" + echo "pnpm version: ${actual}" + if [[ ! "${actual}" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-.+)?$ ]]; then + echo "ERROR: pnpm --version did not produce valid output" + exit 1 + fi + shell: bash - name: 'Test: install in a fresh project' run: | @@ -71,7 +78,14 @@ jobs: run: which pnpm && which pnpx - name: 'Test: version' - run: pnpm --version + run: | + actual="$(pnpm --version)" + echo "pnpm version: ${actual}" + if [[ ! "${actual}" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-.+)?$ ]]; then + echo "ERROR: pnpm --version did not produce valid output" + exit 1 + fi + shell: bash test_standalone: name: Test with standalone @@ -98,7 +112,14 @@ jobs: run: which pnpm - name: 'Test: version' - run: pnpm --version + run: | + actual="$(pnpm --version)" + echo "pnpm version: ${actual}" + if [[ ! "${actual}" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-.+)?$ ]]; then + echo "ERROR: pnpm --version did not produce valid output" + exit 1 + fi + shell: bash - name: 'Test: install in a fresh project' run: | @@ -196,4 +217,11 @@ jobs: run: which pnpm; which pnpx - name: 'Test: version' - run: pnpm --version + run: | + actual="$(pnpm --version)" + echo "pnpm version: ${actual}" + if [[ ! "${actual}" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-.+)?$ ]]; then + echo "ERROR: pnpm --version did not produce valid output" + exit 1 + fi + shell: bash diff --git a/dist/index.js b/dist/index.js index 26f9903bc005d5e535fe5eb0f57ffa251f695e72..5d098bc7640a7eecee4323c1c28df14fa212d6ae 100644 GIT binary patch delta 44280 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 Z2Qj~{v;%DKdR>8fT4+&tOSvrM{{gp%OECZd delta 44247 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 { return npmExitCode } - const pnpmHome = path.join(dest, 'node_modules', '.bin') - addPath(pnpmHome) + // On Windows with standalone mode, npm's .bin shims can't properly + // execute the extensionless @pnpm/exe native binaries. Add the + // @pnpm/exe directory directly to PATH so pnpm.exe is found natively. + const pnpmHome = standalone && process.platform === 'win32' + ? path.join(dest, 'node_modules', '@pnpm', 'exe') + : path.join(dest, 'node_modules', '.bin') + // pnpm expects PNPM_HOME/bin in PATH for global binaries (e.g. node + // installed via `pnpm runtime`). Add it first so the next addPath + // (pnpmHome itself, which contains pnpm.exe) has higher precedence. addPath(path.join(pnpmHome, 'bin')) + addPath(pnpmHome) exportVariable('PNPM_HOME', pnpmHome) // Ensure pnpm bin link exists — npm ci sometimes doesn't create it - const pnpmBinLink = path.join(pnpmHome, 'pnpm') - if (!existsSync(pnpmBinLink)) { - await mkdir(pnpmHome, { recursive: true }) - const target = standalone - ? path.join('..', '@pnpm', 'exe', 'pnpm') - : path.join('..', 'pnpm', 'bin', 'pnpm.mjs') - await symlink(target, pnpmBinLink) + if (process.platform !== 'win32') { + const pnpmBinLink = path.join(dest, 'node_modules', '.bin', 'pnpm') + if (!existsSync(pnpmBinLink)) { + await mkdir(path.join(dest, 'node_modules', '.bin'), { recursive: true }) + const target = standalone + ? path.join('..', '@pnpm', 'exe', 'pnpm') + : path.join('..', 'pnpm', 'bin', 'pnpm.mjs') + await symlink(target, pnpmBinLink) + } } const bootstrapPnpm = standalone - ? path.join(dest, 'node_modules', '@pnpm', 'exe', 'pnpm') + ? path.join(dest, 'node_modules', '@pnpm', 'exe', process.platform === 'win32' ? 'pnpm.exe' : 'pnpm') : path.join(dest, 'node_modules', 'pnpm', 'bin', 'pnpm.mjs') // Determine the target version diff --git a/src/outputs/index.ts b/src/outputs/index.ts index e25a6b0..1d64199 100644 --- a/src/outputs/index.ts +++ b/src/outputs/index.ts @@ -1,10 +1,11 @@ -import { setOutput, addPath } from '@actions/core' +import { setOutput } from '@actions/core' import { Inputs } from '../inputs' import { getBinDest } from '../utils' export function setOutputs(inputs: Inputs) { const binDest = getBinDest(inputs) - addPath(binDest) + // NOTE: addPath is already called in installPnpm — do not call it again + // here, as a second addPath would shadow the correct entry on Windows. setOutput('dest', inputs.dest) setOutput('bin_dest', binDest) }