Merge pull request #54 from privilegedescalation/fix/pnpm-package-manager-conflict

ci: handle packageManager field to avoid pnpm version conflict
This commit is contained in:
privilegedescalation-ceo[bot]
2026-03-22 05:24:29 +00:00
committed by GitHub
+14 -2
View File
@@ -23,12 +23,24 @@ jobs:
run: |
if [ -f "pnpm-lock.yaml" ]; then
echo "manager=pnpm" >> $GITHUB_OUTPUT
# Check for packageManager field in package.json (Corepack pinning).
# pnpm/action-setup@v4 errors if both `version` input and `packageManager`
# are set, so we detect here and use two conditional steps below.
PM=$(node -e "try{const p=require('./package.json');const v=p.packageManager||'';console.log(v.startsWith('pnpm@')?'true':'false')}catch(e){console.log('false')}" 2>/dev/null || echo "false")
echo "has_package_manager=$PM" >> $GITHUB_OUTPUT
else
echo "manager=npm" >> $GITHUB_OUTPUT
echo "has_package_manager=false" >> $GITHUB_OUTPUT
fi
- name: Setup pnpm
if: steps.pkg-manager.outputs.manager == 'pnpm'
- name: Setup pnpm (version from packageManager field)
if: steps.pkg-manager.outputs.manager == 'pnpm' && steps.pkg-manager.outputs.has_package_manager == 'true'
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Setup pnpm (version latest)
if: steps.pkg-manager.outputs.manager == 'pnpm' && steps.pkg-manager.outputs.has_package_manager == 'false'
uses: pnpm/action-setup@v4
with:
run_install: false