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@v3
      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
            pnpm config set store-dir .pnpm-store
      - run:
          name: Install Dependencies
          command: |
            pnpm install
      - save_cache:
          name: Save pnpm Package Cache
          key: pnpm-packages-{{ checksum "pnpm-lock.yaml" }}
          paths:
            - .pnpm-store
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'
            }
        }
    }
}