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