リリース成果物をリポジトリにコミットバック
リリース後にCHANGELOG.md、package.json、lockファイルなどの更新ファイルをリポジトリにコミットバックする@semantic-release/gitの設定。skip-ciパターンを含む。
Advanced Configuration
詳細な説明
リリース成果物のコミット
@semantic-release/gitプラグインは、リリースプロセス中に変更されたファイルをリポジトリにコミットバックします。changelogプラグインを使用する場合や、他のプラグインが追跡ファイルを変更する場合に必須です。
設定
{
"branches": ["main"],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
["@semantic-release/changelog", {
"changelogFile": "CHANGELOG.md"
}],
["@semantic-release/npm", {
"npmPublish": true
}],
"@semantic-release/github",
["@semantic-release/git", {
"assets": [
"CHANGELOG.md",
"package.json",
"package-lock.json"
],
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
}]
]
}
コミットメッセージテンプレート変数
| 変数 | 説明 | 例 |
|---|---|---|
${nextRelease.version} |
新バージョン番号 | 1.2.3 |
${nextRelease.gitTag} |
gitタグ | v1.2.3 |
${nextRelease.notes} |
完全なリリースノート | (複数行) |
${nextRelease.type} |
リリースタイプ | minor |
CIループの回避
コミットメッセージの[skip ci]テキストは、CIシステムがリリースコミットに対して新しいパイプラインをトリガーすることを防ぎます。
プラグインの順序
gitプラグインは配列の最後のプラグインでなければなりません。他のすべてのプラグインがファイルの変更を完了した後に実行する必要があります。
ユースケース
バージョン管理でchangelogを追跡し、リリースコミットに更新されたCHANGELOG.mdと新バージョン番号付きpackage.jsonを含めたいプロジェクト。リリースを反映するクリーンなgit履歴を作成。