Безперервна інтеграція
pnpm можна легко використовувати в різних системах безперервної інтеграції.
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
У Travis CI ви можете використовувати 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
У Semaphore ви можете використовувати pnpm для встановлення та кешування залежностей, додавши його до вашого файлу .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
У AppVeyor ви можете використовувати pnpm для встановлення ваших залежностей, додавши його до вашого appveyor.yml:
install:
  - ps: Install-Product node $env:nodejs_version
  - corepack enable
  - corepack prepare pnpm@latest-8 --activate
  - pnpm install
GitHub Actions
У GitHub Actions ви можете використовувати pnpm для встановлення та кешування ваших залежностей таким чином (знаходиться в .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@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
Caching packages dependencies with actions/setup-node@v2 requires you to install pnpm with version 6.10+.
GitLab CI
У GitLab ви можете використовувати pnpm для встановлення та кешування залежностей таким чином (знаходиться у .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
Ви можете використовувати pnpm для встановлення та кешування залежностей:
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
В Azure Pipelines ви можете використовувати pnpm для встановлення та кешування залежностей, додавши його до вашого 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
У CircleCI ви можете використовувати pnpm для встановлення та кешування ваших залежностей, додавши його до вашого .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
            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
Ви можете використовувати pnpm для встановлення та кешування залежностей:
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'
            }
        }
    }
}