semantic-releaseによる基本的なnpmパッケージリリース

標準的なnpmパッケージ向けにsemantic-releaseを設定。自動バージョニング、リリースノート、npm公開、GitHubリリースを含むほとんどのプロジェクト向けの最小構成。

Basic Configuration

詳細な説明

npmパッケージ向けsemantic-releaseの設定

最も一般的なsemantic-release構成は、npmパッケージのリリースプロセス全体を自動化する4つのコアプラグインを使用します。

最小構成

{
  "branches": ["main"],
  "plugins": [
    "@semantic-release/commit-analyzer",
    "@semantic-release/release-notes-generator",
    "@semantic-release/npm",
    "@semantic-release/github"
  ]
}

各プラグインの動作

  1. commit-analyzer は前回リリース以降のgitコミットを読み取り、Conventional Commitsフォーマットに基づいて次のリリースがメジャー、マイナー、パッチのいずれかを判定します。

  2. release-notes-generator はコミットタイプ(Features、Bug Fixesなど)ごとにグループ化された人間が読めるリリースノートを作成します。

  3. npm はpackage.jsonのversionフィールドを更新し、npmレジストリにパッケージを公開します。

  4. github は生成されたリリースノートでGitHubリリースを作成し、コミットにタグを付けます。

コミットフォーマット

semantic-releaseはConventional Commits仕様に従ったコミットを期待します:

コミットメッセージ リリースタイプ
fix: READMEのタイポを修正 パッチ (0.0.x)
feat: ダークモードサポートを追加 マイナー (0.x.0)
feat!: APIエンドポイントを再設計 メジャー (x.0.0)
BREAKING CHANGE: v1 APIを削除 メジャー (x.0.0)

CI設定

この設定はどのCIシステムでも動作します。GitHub Actionsの場合、GITHUB_TOKENNPM_TOKEN環境変数をシークレットとして設定する必要があります。

ユースケース

mainへのマージのたびにバージョンバンプを自動決定し、npmに公開し、GitHubリリースを作成したいオープンソースライブラリのメンテナー向け。

試してみる — Semantic Release Config Builder

フルツールを開く