fix(ci): use Corepack for pnpm setup when packageManager field is set
fix(ci): use Corepack for pnpm setup when packageManager field is set
This commit is contained in:
@@ -24,8 +24,8 @@ jobs:
|
|||||||
if [ -f "pnpm-lock.yaml" ]; then
|
if [ -f "pnpm-lock.yaml" ]; then
|
||||||
echo "manager=pnpm" >> $GITHUB_OUTPUT
|
echo "manager=pnpm" >> $GITHUB_OUTPUT
|
||||||
# Check for packageManager field in package.json (Corepack pinning).
|
# Check for packageManager field in package.json (Corepack pinning).
|
||||||
# pnpm/action-setup@v4 errors if both `version` input and `packageManager`
|
# pnpm/action-setup@v4 errors when `packageManager` is set (even without
|
||||||
# are set, so we detect here and use two conditional steps below.
|
# a `version` input), so we use Corepack directly for those repos.
|
||||||
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")
|
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
|
echo "has_package_manager=$PM" >> $GITHUB_OUTPUT
|
||||||
else
|
else
|
||||||
@@ -33,11 +33,11 @@ jobs:
|
|||||||
echo "has_package_manager=false" >> $GITHUB_OUTPUT
|
echo "has_package_manager=false" >> $GITHUB_OUTPUT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Setup pnpm (version from packageManager field)
|
- name: Setup pnpm (via Corepack, reads version from packageManager field)
|
||||||
if: steps.pkg-manager.outputs.manager == 'pnpm' && steps.pkg-manager.outputs.has_package_manager == 'true'
|
if: steps.pkg-manager.outputs.manager == 'pnpm' && steps.pkg-manager.outputs.has_package_manager == 'true'
|
||||||
uses: pnpm/action-setup@v4
|
run: |
|
||||||
with:
|
corepack enable pnpm
|
||||||
run_install: false
|
corepack install
|
||||||
|
|
||||||
- name: Setup pnpm (version latest)
|
- name: Setup pnpm (version latest)
|
||||||
if: steps.pkg-manager.outputs.manager == 'pnpm' && steps.pkg-manager.outputs.has_package_manager == 'false'
|
if: steps.pkg-manager.outputs.manager == 'pnpm' && steps.pkg-manager.outputs.has_package_manager == 'false'
|
||||||
|
|||||||
Reference in New Issue
Block a user