pnpmでChangesetsを使う
注意
このドキュメントの執筆時点では、pnpmの最新バージョンはv6.14でした。最新のChangesetsのバージョンはv2.16.0でした。
セットアップ
pnpmワークスペースでchangesetsをセットアップするには、ワークスペースのルートでchangesetsを開発依存関係としてインストールします。
pnpm add -Dw @changesets/cli
次に、changesetsのinitコマンドを実行します。
pnpm changeset init
新しいchangesetsの追加
新しいchangesetを生成するには、リポジトリのルートで pnpm changeset
を実行します。 .changeset
ディレクトリに生成されたMarkdownファイルをリポジトリにコミットする必要があります。
変更のリリース
pnpm changeset version
を実行します。これにより、以前にpnpm changeset
で指定されたパッケージ(およびそれらの依存関係)のバージョンが上がり、changelogファイルが更新されます。pnpm install
を実行します。これにより、lockfileが更新され、パッケージが再構築されます。- 変更をコミットします。
pnpm publish -r
を実行します。このコマンドは、まだレジストリに存在しない、バージョンが上がったすべてのパッケージを公開します。
GitHub Actionsの使用
プロセスを自動化するために、GitHub Actionsで changeset version
を使用できます。
パッケージバージョンの引き上げ
このアクションは、changesetファイルが main
ブランチに到着したことを検出すると、バージョンが上がったすべてのパッケージをリストする新しいPRを開きます。マージされると、パッケージが更新され、 publish
プロパティを追加することで公開するかどうかを決定できます。
公開
pnpm publish -r
を実行する新しいスクリプト ci:publish
を追加します。PRが changeset version
によって開かれると、レジストリに公開されます。
package.json
{
"scripts": {
"ci:publish": "pnpm publish -r"
},
...
}
name: Changesets
on:
push:
branches:
- main
env:
CI: true
PNPM_CACHE_FOLDER: .pnpm-store
jobs:
version:
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- name: checkout code repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: setup node.js
uses: actions/setup-node@v3
with:
node-version: 14
- name: install pnpm
run: npm i pnpm@latest -g
- name: Setup npmrc
run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > .npmrc
- name: setup pnpm config
run: pnpm config set store-dir $PNPM_CACHE_FOLDER
- name: install dependencies
run: pnpm install
- name: create and publish versions
uses: changesets/action@v1
with:
version: pnpm ci:version
commit: "chore: update versions"
title: "chore: update versions"
publish: pnpm ci:publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
このアクションに関する詳細情報とドキュメントは、こちらで確認できます。