Passa al contenuto principale
Versione: 8.x

Integrazione continua

pnpm può essere facilmente utilizzato in vari sistemi di integrazione continua.

note

In tutti i file di configurazione forniti l'archivio viene memorizzato nella cache. Tuttavia, ciò non è obbligatorio e non garantisce un'installazione più rapida. Quindi sentiti libero di non salvare nella cache l'archivio di pnpm all'interno di un tuo job.

Travis

In Travis CI puoi aggiungere il seguente codice al tuo file .travis.yml per installare le dipendenze tramite pnpm:

.travis.yml
cache:
npm: false
directories:
- "~/.pnpm-store"
before_install:
- corepack enable
- corepack prepare pnpm@latest-8 --activate
- pnpm config set store-dir ~/.pnpm-store
install:
- pnpm install

Semaphore

In Semaphore puoi aggiungere il seguente codice al file .semaphore/semaphore.yml per installare e memorizzare nella cache le dipendenze:

.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:
- corepack enable
- corepack prepare pnpm@latest-8 --activate
- checkout
- cache restore node-$(checksum pnpm-lock.yaml)
- pnpm install
- cache store node-$(checksum pnpm-lock.yaml) $(pnpm store path)

AppVeyor

In AppVeyor puoi aggiungere il seguente codice al file appveyor.yml per installare le dipendenze tramite pnpm:

appveyor.yml
install:
- ps: Install-Product node $env:nodejs_version
- corepack enable
- corepack prepare pnpm@latest-8 --activate
- pnpm install

Azioni di GitHub

Nelle GitHub Actions puoi aggiungere il seguente codice al file .github/workflows/NAME.yml per installare le dipendenze tramite pnpm e salvarle nella cache:

.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: 8
- 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

Salvare nella cache le dipendenze dei pacchetti con actions/setup-node@v2 richiede l'installazione della versione 6.10+ di pnpm.

CI di GitLab

Nella CI di GitLab puoi aggiungere il seguente codice al file .gitlab-ci.yml per installare le dipendenze tramite pnpm e salvarle nella cache:

.gitlab-ci.yml
stages:
- build

build:
stage: build
image: node:18.17.1
before_script:
- corepack enable
- corepack prepare pnpm@latest-8 --activate
- pnpm config set store-dir .pnpm-store
script:
- pnpm install # install dependencies
cache:
key:
files:
- pnpm-lock.yaml
paths:
- .pnpm-store

Bitbucket Pipelines

Puoi utilizzare pnpm per installare le dipendenze e salvarle nella cache:

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

pipelines:
pull-requests:
"**":
- step:
name: Build and test
image: node:18.17.1
script:
- corepack enable
- corepack prepare pnpm@latest-8 --activate
- pnpm install
- pnpm run build # Replace with your build/test…etc. commands
caches:
- pnpm

Azure Pipelines

Nelle Azure Pipelines puoi aggiungere il seguente codice al file azure-pipelines.yml per installare le dipendenze tramite pnpm e salvarle nella cache:

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: |
corepack enable
corepack prepare pnpm@latest-8 --activate
pnpm config set store-dir $(pnpm_config_cache)
displayName: "Setup pnpm"

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

CircleCI

In CircleCI puoi aggiungere il seguente codice al tuo .circleci/config.yml per installare le dipendenze tramite pnpm e salvarle nella cache:

.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: |
corepack enable
corepack prepare pnpm@latest-8 --activate
- run:
name: Install Dependencies
command: |
pnpm install
- save_cache:
name: Save pnpm Package Cache
key: pnpm-packages-{{ checksum "pnpm-lock.yaml" }}
paths:
- node_modules

Jenkins

Puoi utilizzare pnpm per installare le dipendenze e salvarle nella cache:

pipeline {
agent {
docker {
image 'node:lts-bullseye-slim'
args '-p 3000:3000'
}
}
stages {
stage('Build') {
steps {
sh 'corepack enable'
sh 'corepack prepare pnpm@latest-8 --activate'
sh 'pnpm install'
}
}
}
}