semantic-releaseのスコープベースリリースルール
コミットスコープに基づいて異なるリリースタイプをトリガーするsemantic-release設定。API変更、特定モジュールのbreaking changeなどにスコープベースルールを使用。
Specialized Configuration
詳細な説明
スコープベースのリリースルール
コミットのスコープに基づいて異なるリリースタイプをトリガーするようsemantic-releaseを設定でき、複数のモジュールやAPIを持つプロジェクトでバージョニングを細かく制御できます。
設定
{
"branches": ["main"],
"plugins": [
["@semantic-release/commit-analyzer", {
"preset": "angular",
"releaseRules": [
{"type": "feat", "scope": "api", "release": "minor"},
{"type": "feat", "scope": "ui", "release": "minor"},
{"type": "fix", "scope": "api", "release": "patch"},
{"type": "fix", "scope": "security", "release": "patch"},
{"type": "perf", "scope": "*", "release": "patch"},
{"type": "docs", "release": false}
]
}],
"@semantic-release/release-notes-generator",
"@semantic-release/npm",
"@semantic-release/github"
]
}
コミット例
| コミットメッセージ | マッチするルール | リリース |
|---|---|---|
feat(api): usersエンドポイント追加 |
feat + apiスコープ | マイナー |
fix(security): XSS脆弱性修正 |
fix + securityスコープ | パッチ |
docs(readme): インストール手順更新 |
docs(全スコープ) | リリースなし |
ルール評価順序
ルールは上から下へ評価されます。最初にマッチしたルールが適用されます。より具体的なルール(スコープ付き)を一般的なルール(スコープなし)の前に配置してください。
ユースケース
異なるモジュール(API、UI、コア)を持つ大規模プロジェクトで、スコープごとに異なるバージョニングの影響がある場合。API変更に慎重なバージョン管理が必要なAPI First企業に有用。