semantic-releaseのカスタムコミットタイプリリースルール

非標準コミットタイプを特定のリリースレベルにマッピングするカスタムリリースルールの設定。docs、perf、refactorなどのコミットタイプからリリースをトリガーするデフォルトの上書き。

Advanced Configuration

詳細な説明

リリースルールのカスタマイズ

デフォルトでは、semantic-releaseはfeat(マイナー)とfix(パッチ)コミットのみでリリースをトリガーします。カスタムルールを追加して他のコミットタイプを含めたり、デフォルトの動作を変更できます。

カスタムルール付き設定

{
  "branches": ["main"],
  "plugins": [
    ["@semantic-release/commit-analyzer", {
      "preset": "angular",
      "releaseRules": [
        {"type": "feat", "release": "minor"},
        {"type": "fix", "release": "patch"},
        {"type": "perf", "release": "patch"},
        {"type": "refactor", "release": "patch"},
        {"type": "docs", "release": "patch"},
        {"type": "style", "release": false},
        {"type": "test", "release": false},
        {"type": "ci", "release": false},
        {"type": "chore", "release": false},
        {"type": "revert", "release": "patch"}
      ]
    }],
    "@semantic-release/release-notes-generator",
    "@semantic-release/npm",
    "@semantic-release/github"
  ]
}

リリースルールのプロパティ

各ルールは複数のプロパティでマッチングできます:

プロパティ 説明
type Conventional Commitタイプ "feat""fix"
scope コミットスコープ "core""api"
release リリースタイプまたはfalse "major""minor""patch"

特定タイプのリリース無効化

"release": falseを設定すると、そのタイプのコミットがリリースをトリガーしなくなります。公開パッケージに影響しないドキュメントのみの変更、テスト追加、CI設定変更に有用です。

ユースケース

パフォーマンス改善、ドキュメント変更、リファクタリング作業でパッチリリースをトリガーして下流の利用者が最新の改善を受け取れるようにしたいプロジェクト、または変更がリリースを生成するかを細かく制御したいチーム向け。

試してみる — Semantic Release Config Builder

フルツールを開く