リリース成果物をリポジトリにコミットバック

リリース後に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履歴を作成。

試してみる — Semantic Release Config Builder

フルツールを開く