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'