Непрерывная интеграция (CI/CD)
pnpm можно легко использовать в различных системах непрерывной интеграции.
Во всех предоставленных конфигурационных файлах хранилище кэшируется. Однако, это не всегда требуется, и не гарантируется, что кэширование хранилища сделает установку зависимостей быстрее. Так что вы можете не использовать кэширование хранилища pnpm в своей работе.
Travis
В Travis CI вы можете использовать pnpm для установки ваших зависимостей, добавив это в файл .travis.yml:
cache:
  npm: false
  directories:
    - "~/.pnpm-store"
before_install:
  - corepack enable
  - corepack prepare pnpm@latest-10 --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-10 --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-10 --activate
  - pnpm install
GitHub Actions
В GitHub Actions вы можете использовать pnpm для установки и кэширования зависимостей вот так (в одном из файлов .github/workflows/NAME.yml):
name: pnpm Example Workflow
on:
  push:
jobs:
  build:
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        node-version: [20]
    steps:
    - uses: actions/checkout@v4
    - name: Install pnpm
      uses: pnpm/action-setup@v4
      with:
        version: 10
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v4
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'pnpm'
    - name: Install dependencies
      run: pnpm install
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-10 --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-10 --activate
            - pnpm install
            - pnpm run build # Replace with your build/test…etc. commands
          caches:
            - pnpm