継続的インテグレーション
pnpmは、さまざまな継続的インテグレーションシステムで簡単に使用できます。
メモ
ここで提供している全ての設定で、ストアをキャッシュしています。 しかし、ストアのキャッシュは必須ではありません。また、ストアのキャッシュによってインストールが速くなることを保証するわけでもありません。 そのため、あなたのジョブで pnpm ストアをキャッシュしなくても構いません。
Travis
Travis CI では、次の内容を .travis.yml
ファイルに追加することで、pnpm を使用して依存関係をインストールすることができます:
.travis.yml
cache:
npm: false
directories:
- "~/.pnpm-store"
before_install:
- corepack enable
- corepack prepare pnpm@latest-7 --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-7 --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-7 --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-20.04
strategy:
matrix:
node-version: [15]
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
with:
version: 7
- 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
メモ
パッケージの依存関係を actions/setup-node@v2
でキャッシュするには、 pnpm のバージョン 6.10+ が必要です。