Passer au contenu principal
Version : 7.x

Intégration Continue

pnpm peut facilement être utilisé dans divers systèmes d'intégration continue.

Travis

Sur Travis CI, vous pouvez utiliser pnpm pour installer vos dépendances en ajoutant ce qui suit à votre fichier .travis.yml:

.travis.yml
cache:
npm: false
directories:
- "~/.pnpm-store"
before_install:
- curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm@7
- pnpm config set store-dir ~/.pnpm-store
install:
- pnpm install

Semaphore

Sur Semaphore, vous pouvez utiliser pnpm pour installer et mettre en cache vos dépendances en ajoutant ceci à votre .semaphore/semaphore.yml:

.semaphore/semaphore.yml
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:
- curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm@7
- checkout
- cache restore node-$(checksum pnpm-lock.yaml)
- pnpm install
- cache store node-$(checksum pnpm-lock.yaml) $(pnpm store path)

AppVeyor

Sur AppVeyor, vous pouvez utiliser pnpm pour installer vos dépendances en ajoutant ce à votre appveyor.yml:

appveyor.yml
install:
- ps: Install-Product node $env:nodejs_version
- curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm@7
- pnpm install

GitHub Actions

Sur les actions GitHub, vous pouvez utiliser pnpm pour installer et mettre en cache vos dépendances comme ceci (fait partie de .github/workflows/NAME.yml) :

.github/workflows/NAME.yml
name: pnpm Example Workflow
on:
push:
jobs:
build:
runs-on: ubuntu-20.04
strategy:
matrix:
node-version: [15]
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
with:
version: 7
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
note

La mise en cache des dépendances des paquets avec actions/setup-node@v2 nécessite l'installation de pnpm avec la version 6.10+.

GitLab CI

On GitLab, you can use pnpm for installing and caching your dependencies like so (belongs in .gitlab-ci.yml):

.gitlab-ci.yml
stages:
- build

build:
stage: build
image: node:14.16.0-buster
before_script:
- curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm@7
- pnpm config set store-dir .pnpm-store
script:
- pnpm install # install dependencies
cache:
key:
files:
- pnpm-lock.yaml
paths:
- .pnpm-store

Bitbucket Pipelines

Vous pouvez utiliser pnpm pour installer et mettre en cache vos dépendances :

.bitbucket-pipelines.yml
definitions:
caches:
pnpm: $BITBUCKET_CLONE_DIR/.pnpm-store

pipelines:
pull-requests:
"**":
- step:
name: Build and test
image: node:14.16.0
script:
- curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm@7
- pnpm install
- pnpm run build # Replace with your build/test…etc. commands
caches:
- pnpm

Azure Pipelines

On Azure Pipelines, you can use pnpm for installing and caching your dependencies by adding this to your azure-pipelines.yml:

azure-pipelines.yml
variables:
pnpm_config_cache: $(Pipeline.Workspace)/.pnpm-store

steps:
- task: Cache@2
inputs:
key: 'pnpm | "$(Agent.OS)" | pnpm-lock.yaml'
path: $(pnpm_config_cache)
displayName: Cache pnpm

- script: |
curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm@7
pnpm config set store-dir $(pnpm_config_cache)
displayName: "Setup pnpm"

- script: |
pnpm install
pnpm run build
displayName: "pnpm install and build"

CircleCI

On CircleCI, you can use pnpm for installing and caching your dependencies by adding this to your .circleci/config.yml:

.circleci/config.yml
version: 2.1

jobs:
build: # this can be any name you choose
docker:
- image: node:18
resource_class: large
parallelism: 10

steps:
- checkout
- restore_cache:
name: Restore pnpm Package Cache
keys:
- pnpm-packages-{{ checksum "pnpm-lock.yaml" }}
- run:
name: Install pnpm package manager
command: |
curl -L https://pnpm.js.org/pnpm.js | node - add --global pnpm@7
- run:
name: Install Dependencies
command: |
pnpm install
- save_cache:
name: Save pnpm Package Cache
key: pnpm-packages-{{ checksum "pnpm-lock.yaml" }}
paths:
- node_modules