From e57f1a275bee5e95d104f493d35d306ba25839fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=A5=E6=B5=A9?= Date: Sat, 12 Oct 2024 18:23:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=20Node=20=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E8=AE=BE=E7=BD=AE=EF=BC=8C=E6=94=B9=E8=BF=9B=20pnpm?= =?UTF-8?q?=20=E6=A3=80=E6=9F=A5=E9=80=BB=E8=BE=91=E5=B9=B6=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E8=BE=93=E5=87=BA=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup-node-environment/action.yml | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/setup-node-environment/action.yml b/setup-node-environment/action.yml index 5f27975..32f051b 100644 --- a/setup-node-environment/action.yml +++ b/setup-node-environment/action.yml @@ -39,47 +39,41 @@ runs: id: prepare run: | # Check package manager - packageManager=$(node -p "require('./package.json').packageManager") echo "#############################" + setupPnpm=false + packageManager=$(node -p "require('./package.json').packageManager") echo "packageManager: $packageManager found in package.json" + if [[ "$packageManager" == "pnpm"* ]] && ! which pnpm > /dev/null; then + echo "the package manager is pnpm but pnpm is not installed" + setup-pnpm=true + fi + echo "setupPnpm: $setupPnpm" + echo "setup-pnpm=$setupPnpm" >> $GITHUB_OUTPUT echo "" - if [[ "$packageManager" == "pnpm"* ]]; then - echo "#############################" - # TODO: 还有一种情况就是镜像中已经安装了pnpm。 - echo "setup-pnpm=true" - echo "" - - echo "setup-pnpm=true" >> $GITHUB_OUTPUT - fi - # Check if pnpm-lock.yaml exists + echo "#############################" if [[ -f "pnpm-lock.yaml" ]]; then - echo "#############################" echo "pnpm-lock.yaml exists. So pnpm install --frozen-lockfile will run" - echo "" - echo "pnpm-lock-exists=true" >> $GITHUB_OUTPUT echo "cache=pnpm" >> $GITHUB_OUTPUT else echo "pnpm-lock.yaml does not exist" fi + echo "" # Extract the node version from the .npmrc file + echo "#############################" nodeVersion=$(sed -n 's/.*use-node-version=\([0-9.]*\).*/\1/p' .npmrc) if [[ -z "$nodeVersion" ]]; then nodeVersion="lts/*" - echo "#############################" echo "Node version not found in .npmrc. Using default: $nodeVersion" - echo "" else - echo "#############################" echo "Node version found in .npmrc: $nodeVersion" - echo "" fi - echo "node-version=$nodeVersion" >> $GITHUB_OUTPUT + echo "" - uses: pnpm/action-setup@v4 # https://github.com/pnpm/action-setup?tab=readme-ov-file#inputs if: steps.prepare.outputs.setup-pnpm == 'true'