Skip to content
package

GitHub Action

All in one: setup node, pnpm, cache

v3.2.0 Latest version

All in one: setup node, pnpm, cache

package

All in one: setup node, pnpm, cache

Installs pnpm, uses actions/setup-node for cache, and *then* runs pnpm install

Installation

Copy and paste the following snippet into your .yml file.

              

- name: All in one: setup node, pnpm, cache

uses: wyvox/action-setup-pnpm@v3.2.0

Learn more about this action in wyvox/action-setup-pnpm

Choose a version

wyvox/action-setup-pnpm

Correctly sets up node, pnpm, and cache for pnpm dependencies so that installation can be as fast as it can be.

Usage:

steps:
  - uses: actions/checkout@v3
  - uses: wyvox/action-setup-pnpm@v3

Support:

  • dependency cache
  • pnpm only
    • choose pnpm version via package.json#packageManager or package.json#volta.pnpm
    • pass any args

Options

While this action is meant to reduce boilerplate, you end up having one extra line than optimal if you need to customize anything, unless doing inline yaml-object syntax -- example:

- uses: wyvox/action-setup-pnpm@v3
  with: { node-version: 18 }

node-version

Allows changing the node-version passed to actions/setup-node.

- uses: wyvox/action-setup-pnpm@v3
  with:
    node-version: 18

node-version-file

Allows changing the node-version-file passed to actions/setup-node.

The default has changed from actions/setup-node's '' to 'package.json', enabling easy volta usage with 0 configuration for consumers of wyvox/action-setup-pnpm. not providing a volta config also have 0 consequence.

- uses: wyvox/action-setup-pnpm@v3
  with:
    node-version-file: '.node-version'

node-registry-url

Allows changing the registry-url passed to actions/setup-node.

- uses: wyvox/action-setup-pnpm@v3
  with:
    node-registry-url: "https://registry.npmjs.org"

pnpm-version

Allows changing the pnpm-version passed to pnpm/action-setup.

- uses: wyvox/action-setup-pnpm@v1
  with:
    pnpm-version: 7.29.0

args

Passes through any args directly to pnpm install.

- uses: wyvox/action-setup-pnpm@v3
  with:
    args: '--ignore-scripts --fix-lockfile'

Why?

pnpm/action-setup can install dependencies on its own, but then no cache is used from actions/setup-node.

actions/setup-node configures node, (and correctly respects volta configurations), cache, etc

To set this up on your own, you would required three manual steps in your workflow config file:

steps:
  # ...
  - uses: pnpm/action-setup@v2
    with:
      version: 8
  - uses: actions/setup-node@v4
    with:
      cache: 'pnpm'
  - run: pnpm install