fix: not allow install multiple package manager (#161)
Some checks failed
Test Action / Test with default inputs (ubuntu-latest, 9.15.5) (push) Successful in 7s
Test Action / Test with dest (ubuntu-latest, 9.15.5) (push) Successful in 13s
Test Action / Test with standalone (ubuntu-latest, false) (push) Successful in 15s
Test Action / Test with standalone (ubuntu-latest, true) (push) Successful in 17s
Test Action / Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }}) (ubuntu-latest, 9.15.5, map[name:array value:- {} - recursive: true - args: - --global - --global-dir=./pnpm-global - npm - yarn ]) (push) Successful in 12s
Test Action / Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }}) (ubuntu-latest, 9.15.5, map[name:empty object value:{}]) (push) Successful in 9s
Test Action / Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }}) (ubuntu-latest, 9.15.5, map[name:global value:args: - --global - --global-dir=./pnpm-global - npm - yarn ]) (push) Successful in 11s
Test Action / Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }}) (ubuntu-latest, 9.15.5, map[name:null value:null]) (push) Successful in 8s
Test Action / Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }}) (ubuntu-latest, 9.15.5, map[name:recursive value:recursive: true ]) (push) Successful in 10s
Test Action / Test with default inputs (macos-latest, 9.15.5) (push) Has been cancelled
Test Action / Test with default inputs (windows-latest, 9.15.5) (push) Has been cancelled
Test Action / Test with dest (macos-latest, 9.15.5) (push) Has been cancelled
Test Action / Test with dest (windows-latest, 9.15.5) (push) Has been cancelled
Test Action / Test with standalone (macos-latest, false) (push) Has been cancelled
Test Action / Test with standalone (macos-latest, true) (push) Has been cancelled
Test Action / Test with standalone (windows-latest, false) (push) Has been cancelled
Test Action / Test with standalone (windows-latest, true) (push) Has been cancelled
Test Action / Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }}) (macos-latest, 9.15.5, map[name:array value:- {} - recursive: true - args: - --global - --global-dir=./pnpm-global - npm - yarn ]) (push) Has been cancelled
Test Action / Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }}) (macos-latest, 9.15.5, map[name:empty object value:{}]) (push) Has been cancelled
Test Action / Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }}) (macos-latest, 9.15.5, map[name:global value:args: - --global - --global-dir=./pnpm-global - npm - yarn ]) (push) Has been cancelled
Test Action / Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }}) (macos-latest, 9.15.5, map[name:null value:null]) (push) Has been cancelled
Test Action / Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }}) (macos-latest, 9.15.5, map[name:recursive value:recursive: true ]) (push) Has been cancelled
Test Action / Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }}) (windows-latest, 9.15.5, map[name:array value:- {} - recursive: true - args: - --global - --global-dir=./pnpm-global - npm - yarn ]) (push) Has been cancelled
Test Action / Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }}) (windows-latest, 9.15.5, map[name:empty object value:{}]) (push) Has been cancelled
Test Action / Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }}) (windows-latest, 9.15.5, map[name:global value:args: - --global - --global-dir=./pnpm-global - npm - yarn ]) (push) Has been cancelled
Test Action / Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }}) (windows-latest, 9.15.5, map[name:null value:null]) (push) Has been cancelled
Test Action / Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }}) (windows-latest, 9.15.5, map[name:recursive value:recursive: true ]) (push) Has been cancelled

When a project has both npm and pnpm, using pnpm/action-setup will result in an error: `Multiple versions of pnpm specified`.

The previous implementation was only meant to avoid the "ERR_PNPM_BAD_PM_VERSION" error, but it did not take into account the situation of multiple different package managers.

Signed-off-by: Kevin Cui <bh@bugs.cc>
This commit is contained in:
Kevin Cui 2025-03-28 08:37:14 +08:00 committed by GitHub
parent a7487c7e89
commit d648c2dd06
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -64,6 +64,7 @@ async function readTarget(opts: {
if (version) {
if (
typeof packageManager === 'string' &&
packageManager.startsWith('pnpm@') &&
packageManager.replace('pnpm@', '') !== version
) {
throw new Error(`Multiple versions of pnpm specified: