Integrazione continua
pnpm può essere facilmente utilizzato in vari sistemi di integrazione continua.
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:
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:
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:
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:
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
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:
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:
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:
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:
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'
}
}
}
}