pnpm / action-setup

Install pnpm package manager
https://github.com/marketplace/actions/setup-pnpm
MIT License
899 stars 87 forks source link

[feature request] Use version of pnpm specified in package.json's engines section #84

Open kopach opened 1 year ago

kopach commented 1 year ago

In my projects, I'm trying to specify exact versions of dependencies (including node and pnpm).

I would like to specify a version of pnpm once in package.json and reuse in pnpm/action-setup action

package.json has engines section for this

{
  "engines": {
    "pnpm": "7.32.5"
  },
}

Would be great, if pnpm/action-setup could support this field.

Note: actions/setup-node supports engines.node via node-version-file property.

I'm also aware of packageManager property of package.json, but with it – I can't enforce exact version of PNPM, however with engines.pnpm + engine-strict=true - I can, so everyone in the team has same environment


It might be related to this: https://github.com/pnpm/action-setup/issues/24

kopach commented 1 year ago

For anyone interested, as a workaround, I'm doing this right now

    - name: Get PNPM version from package.json
      id: pnpm-version
      shell: bash
      run: echo "pnpm_version=$(node -p 'require(`./package.json`).engines.pnpm')" >> $GITHUB_OUTPUT

    - name: Install PNPM
      uses: pnpm/action-setup@v2.2.4
      with:
        version: ${{ steps.pnpm-version.outputs.pnpm_version }}