GitHub Action
All in one: setup node, pnpm, cache
Correctly sets up node, pnpm, and cache for pnpm dependencies so that installation can be as fast as it can be.
steps:
- uses: actions/checkout@v3
- uses: wyvox/action-setup-pnpm@v3
- dependency cache
- pnpm only
- choose
pnpm
version viapackage.json#packageManager
orpackage.json#volta.pnpm
- pass any args
- choose
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 }
Allows changing the node-version
passed to actions/setup-node
.
- uses: wyvox/action-setup-pnpm@v3
with:
node-version: 18
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'
Allows changing the registry-url
passed to actions/setup-node
.
- uses: wyvox/action-setup-pnpm@v3
with:
node-registry-url: "https://registry.npmjs.org"
Allows changing the pnpm-version
passed to pnpm/action-setup
.
- uses: wyvox/action-setup-pnpm@v1
with:
pnpm-version: 7.29.0
Passes through any args directly to pnpm install
.
- uses: wyvox/action-setup-pnpm@v3
with:
args: '--ignore-scripts --fix-lockfile'
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