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企業に有用。

試してみる — Semantic Release Config Builder

フルツールを開く