name: 'Usage of action-setup GitHub Action'
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: latest
PnPM Setup
Install pnPm package manager
What is PnPM Setup?â
The Setup pnpm GitHub Action installs the pnpm package manager, enabling efficient package management for JavaScript and TypeScript projects.
How to Install pnpm and a Few npm Packagesâ
This example demonstrates how to set up pnpm and install a few npm packages.
- uses: pnpm/action-setup@v4
with:
version: 8
run_install: |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]
- args: [--global, gulp, prettier, typescript]
How to Use Cache to Reduce Installation Timeâ
This example demonstrates how to cache pnpm store to reduce installation time.
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 8
run_install: false
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
How to Specify pnpm Versionâ
Version of pnpm to install. This is optional if the packageManager
field is present in package.json
. Supports npm versioning scheme.
with:
version: 6.24.1
How to Specify Destinationâ
Where to store pnpm files.
with:
dest: ~/.pnpm
How to Run pnpm Installâ
If specified, runs pnpm install
. Can be true, false, or a YAML string representation of an object or array.
with:
run_install: true
How to Use Recursive Installâ
Whether to use pnpm recursive install
.
with:
run_install:
recursive: true
How to Specify Working Directory for Installâ
Working directory when running pnpm [recursive] install
.
with:
run_install:
cwd: subdirectory/
How to Add Additional Arguments for Installâ
Additional arguments after pnpm [recursive] install
.
with:
run_install:
args: [--frozen-lockfile, --strict-peer-dependencies]
How to Specify package.json File Pathâ
File path to the package.json
to read "packageManager" configuration.
with:
package_json_file: path/to/package.json
How to Enable Standalone Modeâ
When set to true, @pnpm/exe
will be installed, enabling using pnpm without Node.js.
with:
standalone: true