From f9d346570366b275d5452c30c15618ff875ca284 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=A5=E6=B5=A9?= Date: Sat, 12 Oct 2024 15:05:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=20setup-node-environ?= =?UTF-8?q?ment.yml=20=E5=92=8C=20action.yml=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=A3=80=E6=9F=A5=E5=92=8C=E8=BE=93=E5=87=BA?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=EF=BC=9B=E6=96=B0=E5=A2=9E=20.npmrc=20?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=BB=A5=E6=8C=87=E5=AE=9A=20Node.js=20?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/setup-node-environment.yml | 9 +++++++++ .npmrc | 1 + setup-node-environment/action.yml | 21 ++++++++++++++++---- 3 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 .npmrc diff --git a/.github/workflows/setup-node-environment.yml b/.github/workflows/setup-node-environment.yml index ead85c5..b194a4f 100644 --- a/.github/workflows/setup-node-environment.yml +++ b/.github/workflows/setup-node-environment.yml @@ -12,8 +12,17 @@ jobs: job: runs-on: ubuntu-latest steps: + - name: before + run: | + set -x + which pnpm + node -v + - uses: yanhao98/composite-actions/setup-node-environment@main + - name: Check Node and PNPM versions run: | set -x which pnpm + node -v + pnpm node -v diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..1b788bf --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +use-node-version=22.9.0 # https://pnpm.io/zh/npmrc#use-node-version \ No newline at end of file diff --git a/setup-node-environment/action.yml b/setup-node-environment/action.yml index d39bf19..9b4904d 100644 --- a/setup-node-environment/action.yml +++ b/setup-node-environment/action.yml @@ -39,28 +39,41 @@ runs: id: prepare run: | # Check package manager - # packageManager=$(jq -r '.packageManager' package.json) packageManager=$(node -p "require('./package.json').packageManager") - echo "packageManager: $packageManager" + echo "#############################" + echo "packageManager: $packageManager found in package.json" + echo "#############################" + if [[ "$packageManager" == "pnpm"* ]]; then + echo "#############################" echo "setup-pnpm=true" + echo "#############################" + echo "setup-pnpm=true" >> $GITHUB_OUTPUT fi # Check if pnpm-lock.yaml exists if [[ -f "pnpm-lock.yaml" ]]; then - echo "pnpm-lock.yaml exists" + 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 + # Extract the node version from the .npmrc file + nodeVersion=$(grep 'use-node-version=' .npmrc | sed -E 's/^use-node-version=([0-9.]+).*/\1/') + echo "node-version=$nodeVersion" >> $GITHUB_OUTPUT + sed -i '/use-node-version/d' .npmrc + - uses: pnpm/action-setup@v4 # https://github.com/pnpm/action-setup?tab=readme-ov-file#inputs if: steps.prepare.outputs.setup-pnpm == 'true' - uses: actions/setup-node@v4 # https://github.com/actions/setup-node?tab=readme-ov-file#usage with: - node-version: lts/* + node-version: ${{ steps.prepare.outputs.node-version || 'lts/*' }} cache: ${{ steps.prepare.outputs.cache }} - name: 📦 Install Project Dependencies if: steps.prepare.outputs.pnpm-lock-exists == 'true'