semantic-releaseによる基本的なnpmパッケージリリース
標準的なnpmパッケージ向けにsemantic-releaseを設定。自動バージョニング、リリースノート、npm公開、GitHubリリースを含むほとんどのプロジェクト向けの最小構成。
Basic Configuration
詳細な説明
npmパッケージ向けsemantic-releaseの設定
最も一般的なsemantic-release構成は、npmパッケージのリリースプロセス全体を自動化する4つのコアプラグインを使用します。
最小構成
{
"branches": ["main"],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/npm",
"@semantic-release/github"
]
}
各プラグインの動作
commit-analyzer は前回リリース以降のgitコミットを読み取り、Conventional Commitsフォーマットに基づいて次のリリースがメジャー、マイナー、パッチのいずれかを判定します。
release-notes-generator はコミットタイプ(Features、Bug Fixesなど)ごとにグループ化された人間が読めるリリースノートを作成します。
npm はpackage.jsonの
versionフィールドを更新し、npmレジストリにパッケージを公開します。github は生成されたリリースノートでGitHubリリースを作成し、コミットにタグを付けます。
コミットフォーマット
semantic-releaseはConventional Commits仕様に従ったコミットを期待します:
| コミットメッセージ | リリースタイプ |
|---|---|
fix: READMEのタイポを修正 |
パッチ (0.0.x) |
feat: ダークモードサポートを追加 |
マイナー (0.x.0) |
feat!: APIエンドポイントを再設計 |
メジャー (x.0.0) |
BREAKING CHANGE: v1 APIを削除 |
メジャー (x.0.0) |
CI設定
この設定はどのCIシステムでも動作します。GitHub Actionsの場合、GITHUB_TOKENとNPM_TOKEN環境変数をシークレットとして設定する必要があります。
ユースケース
mainへのマージのたびにバージョンバンプを自動決定し、npmに公開し、GitHubリリースを作成したいオープンソースライブラリのメンテナー向け。