継続的インテグレーション
pnpmは、さまざまな継続的インテグレーションシステムで簡単に使用できます。
メモ
ここで提供している全ての設定で、ストアをキャッシュしています。 しかし、 ストアのキャッシュは必須ではありません。また、ストアのキャッシュによってインストールが速くなることを保証するわけでもありません。 そのため、あなたのジョブで pnpm ストアをキャッシュしなくても構いません。
Travis
Travis CI では、次の内容を .travis.yml ファイルに追加することで、pnpm を使用して依存関係をインストールすることができます:
.travis.yml
cache:
  npm: false
  directories:
    - "~/.pnpm-store"
before_install:
  - corepack enable
  - corepack prepare pnpm@latest-9 --activate
  - pnpm config set store-dir ~/.pnpm-store
install:
  - pnpm install
Semaphore
Semaphore では、次の内容を .semaphore.yml ファイルに追加することで、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-9 --activate
            - checkout
            - cache restore node-$(checksum pnpm-lock.yaml)
            - pnpm install
            - cache store node-$(checksum pnpm-lock.yaml) $(pnpm store path)
AppVeyor
AppVeyor では、次の内容を appveyor.yml に追加することで、pnpm に よる依存関係のインストールが可能です:
appveyor.yml
install:
  - ps: Install-Product node $env:nodejs_version
  - corepack enable
  - corepack prepare pnpm@latest-9 --activate
  - pnpm install
GitHub Actions
GitHub Actionsでは、( .github/workflows/NAME.yml に) 次のような設定を書くことで、 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: 9
    - 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