Install pnpm package manager
Go to file
2021-03-23 12:48:54 +07:00
.github Enable Dependabot 2020-10-05 22:16:14 +07:00
dist Forgot to specify working directory 2021-03-23 12:48:54 +07:00
src Forgot to specify working directory 2021-03-23 12:48:54 +07:00
.editorconfig Update .editorconfig 2020-05-08 10:35:40 +07:00
.gitattributes Fix .gitattributes 2020-05-09 08:13:09 +07:00
.gitignore Add .pnpm-store to .gitignore 2021-03-23 12:48:07 +07:00
action.yml Use pnpm.js to install pnpm 2021-03-23 12:42:43 +07:00
LICENSE.md 2020 2020-02-26 17:29:08 +07:00
package.json Use pnpm.js to install pnpm 2021-03-23 12:42:43 +07:00
pnpm-lock.yaml Use pnpm.js to install pnpm 2021-03-23 12:42:43 +07:00
README.md Make some tweaks to example code snippets 2021-02-18 08:30:07 +07:00
renovate.json Instruct renovate to ignore ajv updates 2021-03-23 11:47:55 +07:00
run.sh Use pnpm.js to install pnpm 2021-03-23 12:42:43 +07:00
tsconfig.json Add TypeScript build step 2020-05-08 10:22:09 +07:00

Setup PNPM

Install PNPM package manager.

Inputs

version

Required Version of PNPM to install.

dest

Optional Where to store PNPM files.

bin_dest

Optional Where to store executables (pnpm and pnpx commands).

registry

Optional (default: https://registry.npmjs.com) Registry to download PNPM from.

run_install

Optional (default: null) If specified, run pnpm install.

If run_install is either null or false, pnpm will not install any npm package.

If run_install is true, pnpm will install dependencies recursively.

If run_install is a YAML string representation of either an object or an array, pnpm will execute every install commands.

run_install.recursive

Optional (type: boolean, default: false) Whether to use pnpm recursive install.

run_install.cwd

Optional (type: string) Working directory when run pnpm [recursive] install.

run_install.args

Optional (type: string[]) Additional arguments after pnpm [recursive] install, e.g. [--frozen-lockfile, --strict-peer-dependencies].

Outputs

dest

Expanded path of inputs#dest.

bin_dest

Expanded path of inputs#bin_dest.

Usage example

Just install PNPM

on:
  - push
  - pull_request

jobs:
  runs-on: ubuntu-latest

  steps:
    - uses: pnpm/action-setup@v1.2.1
      with:
        version: 5.17.2

Install PNPM and a few NPM packages

on:
  - push
  - pull_request

jobs:
  runs-on: ubuntu-latest

  steps:
    - uses: actions/checkout@v2

    - uses: pnpm/action-setup@v1.2.1
      with:
        version: 5.17.2
        run_install: |
          - recursive: true
            args: [--frozen-lockfile, --strict-peer-dependencies]
          - args: [--global, gulp, prettier, typescript]          

Use cache to reduce installation time

on:
  - push
  - pull_request

jobs:
  runs-on: ubuntu-latest

  steps:
    build:
      - uses: actions/checkout@v2

      - name: Cache pnpm modules
        uses: actions/cache@v2
        env:
          cache-name: cache-pnpm-modules
        with:
          path: ~/.pnpm-store
          key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ matrix.node-version }}-${{ hashFiles('**/package.json') }}
          restore-keys: |
            ${{ runner.os }}-build-${{ env.cache-name }}-${{ matrix.node-version }}-            

      - uses: pnpm/action-setup@v1.2.1
        with:
          version: 5.17.2
          run_install: true

Note: You don't need to run pnpm store prune at the end; post-action has already taken care of that.

Notes

This action does not setup Node.js for you, use actions/setup-node yourself.

License

MIT © Hoàng Văn Khải