Continuous Integration
pnpm can easily be used in various continuous integration systems.
In all the provided configuration files the store is cached. However, this is not required, and it is not guaranteed that caching the store will make installation faster. So feel free to not cache the pnpm store in your job.
Travis
On Travis CI, you can use pnpm for installing your dependencies by adding this to your .travis.yml
file:
cache:
npm: false
directories:
- "~/.pnpm-store"
before_install:
- corepack enable
- corepack prepare pnpm@latest-9 --activate
- pnpm config set store-dir ~/.pnpm-store
install:
- pnpm install
Semaphore
On Semaphore, you can use pnpm for installing and caching your dependencies by adding this to your .semaphore/semaphore.yml
file:
version: v1.0
name: Semaphore CI pnpm example
agent:
machine:
type: e1-standard-2
os_image: ubuntu1804
blocks:
- name: Install dependencies
task:
jobs:
- name: pnpm install
commands:
- corepack enable
- corepack prepare pnpm@latest-9 --activate
- checkout
- cache restore node-$(checksum pnpm-lock.yaml)
- pnpm install
- cache store node-$(checksum pnpm-lock.yaml) $(pnpm store path)
AppVeyor
On AppVeyor, you can use pnpm for installing your dependencies by adding this to your appveyor.yml
:
install:
- ps: Install-Product node $env:nodejs_version
- corepack enable
- corepack prepare pnpm@latest-9 --activate
- pnpm install
GitHub Actions
On GitHub Actions, you can use pnpm for installing and caching your dependencies like so (belongs in .github/workflows/NAME.yml
):
name: pnpm Example Workflow
on:
push:
jobs:
build:
runs-on: ubuntu-22.04
strategy:
matrix:
node-version: [20]
steps:
- uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v3
with:
version: 9
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
Caching packages dependencies with actions/setup-node@v2
requires you to install pnpm with version 6.10+.
GitLab CI
On GitLab, you can use pnpm for installing and caching your dependencies like so (belongs in .gitlab-ci.yml
):
stages:
- build
build:
stage: build
image: node:18.17.1
before_script:
- corepack enable
- corepack prepare pnpm@latest-9 --activate
- pnpm config set store-dir .pnpm-store
script:
- pnpm install # install dependencies
cache:
key:
files:
- pnpm-lock.yaml
paths:
- .pnpm-store