Frontend packages for projects at SmartHR
自動で作成されているリリース Pull Request をマージすると、Github Actions の publish workflow で以下のことが行われます。
- 各パッケージの package.json 内の version が更新される
- 各パッケージの
CHANGELOG.mdが更新される - リリースタグが打たれる
- npm にパッケージが公開される
基本的にはこれでリリースは完了です。
publish workflow が何かしらの理由で失敗した場合、CHANGELOG.md が更新されたりリリースタグが打たれたりなど Github 上ではリリースが完了している状態になるのに、npm にはパッケージが公開されていない、といったような不整合が起きてしまいます。
これを解消するために、下記の手順で手元でリリースを行う必要があります。
$ git switch --detach xxx # 任意のリリースタグがついているコミットに切り替える
$ pnpm install
$ pnpm releasesmarthr の organization に所属していない場合は publish ができないので、申請をするか、すでに所属している人に publish を依頼してください。
packagesディレクトリに新しいパッケージ用のディレクトリを作成し、必要なファイルを追加します。- Lerna がリリースしてしまわないように、
package.jsonにprivate: trueを追記します。 - tsc のビルド対象に含める場合は、
packages/tsconfig.jsonのreferencesに追加します。 - 通常通り conventional commits でコミットを行い、プルリクエストを作成します。
- プルリクエストをマージしても、リリース用のプルリクエストが作成されないことを確認します。
- 下記の3つの変更を含んだプルリクエストを作成します。
- 新しいパッケージの
package.jsonにversion: "1.0.0"を追記します。 - 新しいパッケージの
package.jsonからprivate: trueを削除します。 - release-please がリリース用のプルリクエストを作るように
release-please-config.jsonに下記のような行を追加します。 (もし0.1.0などのマイナーバージョンでリリースしたい場合はinitial-versionを指定し、該当パッケージのpackage.jsonのversionも合わせてください。)
- 新しいパッケージの
"packages/new-package-name": {},
- プルリクエストをマージすると、リリース用のプルリクエストが作成されます。
.release-please-manifest.jsonの差分に表示されているリリースバージョンが正しいことを確認してください。 - リリース用のプルリクエストに含まれる
CHANGELOG.mdには、リリースまでのすべてのプルリクエストの内容が記載されています。それらの記載が不要な場合はリリース用プルリクエストに直接コミットする形でCHANGELOG.mdを修正します。(例) - リリース用のプルリクエストをマージして、Github Actions のリリースのワークフローを見守ります。
- リリースが完了したら、npm のパッケージのページで Trusted Publisher と Publishing Access の設定をします。
- #793 に貼ってあるキャプチャと内容と同じ設定にしてください。