バージョン管理を自動化!release-itでリリース作業を一発で済ませる方法

タグ GitHubオープンソースrelease-it

このソフトで何ができる?

release-itは、ソフトウェアのリリース作業をまるごと自動化してくれるコマンドラインツールです。バージョン番号の更新、Gitへのコミットとタグ付け、GitHubへのリリース作成、npmへの公開まで、ひとつのコマンドでまとめて行えます。これまで手作業でひとつひとつこなしていたリリース手順を、対話形式のウィザードに従うだけでミスなく完了できます。

どんな人におすすめ?

JavaScriptやTypeScriptでライブラリを開発している方には特に強力なツールです。たとえば以下のようなシーンで役立ちます。

  • 個人でnpmパッケージを公開しており、「バージョン更新→コミット→タグ→プッシュ→npm publish」という手順を毎回手動でやっている方
  • チームで開発していて、リリースのたびに手順の抜け漏れが起きてしまう方
  • GitHubのリリースページを自動で作りたいが、設定が面倒で後回しにしている方
  • CI/CDパイプラインにリリース処理を組み込みたいと考えているエンジニア

「コマンドひとつでリリース作業が終わる」という体験は、一度味わうと手放せなくなります。

インストール方法

プロジェクトのルートディレクトリ(package.jsonがあるフォルダ)で以下のコマンドを実行します。

かんたんセットアップ(推奨)

npm init release-it

このコマンドを実行すると、必要な設定を自動で行ってくれます。初めて使う方はこちらが便利です。

手動でインストールする場合

npm install -D release-it

インストール後、package.jsonscriptsセクションに以下を追加します。

{
  "name": "my-package",
  "version": "1.0.0",
  "scripts": {
    "release": "release-it"
  },
  "devDependencies": {
    "release-it": "^20.0.0"
  }
}

グローバルインストール(どのプロジェクトでも使いたい場合)

npm install -g release-it

Homebrewを使っている方はこちらでもインストールできます。

brew install release-it

基本的な使い方

インストール後、プロジェクトのルートで以下のコマンドを実行するだけです。

npm run release

または直接呼び出す場合は:

npx release-it

実行すると、対話形式のウィザードが起動します。新しいバージョン番号の選択(パッチ・マイナー・メジャーなど)を案内してくれるので、矢印キーで選ぶだけです。設定に応じて、Gitコミット・タグ・プッシュ・GitHubリリース作成・npm公開の各ステップを順番に確認しながら進めてくれます。

設定ファイルはプロジェクトルートに.release-it.jsonという名前で置きます。

{
  "$schema": "https://unpkg.com/release-it@20/schema/release-it.json",
  "git": {
    "commitMessage": "chore: release v${version}"
  },
  "github": {
    "release": true
  }
}

この設定例では、コミットメッセージをchore: release v1.2.3の形式にして、GitHubのリリースページも自動で作成するよう指定しています。

活用アイデア

1. チェンジログ(変更履歴)を自動生成する

@release-it/conventional-changelogプラグインを組み合わせると、コミットメッセージから変更履歴ファイルを自動で作成できます。「今回のリリースで何が変わったか」をユーザーに伝えるドキュメントが手間なく揃います。

npm install -D @release-it/conventional-changelog

2. CI/CDに組み込んでリリースを全自動化する

GitHub ActionsなどのCI環境でrelease-itを動かすことで、特定のブランチにマージされたタイミングで自動リリースが走るようにできます。人手を完全に介さないリリースフローが実現します。

npx release-it --ci

--ciフラグを付けると対話なしで自動実行モードになります。

3. プレリリース版(ベータ版)の管理に使う

新機能を本番リリース前に一部のユーザーに試してもらいたいとき、alphabetaといったプレリリース版を手軽に管理できます。

npx release-it --preRelease=beta

これで1.0.0-beta.1のような形式のバージョンが作成されます。正式リリース前の動作確認に最適です。

4. モノレポ(複数パッケージ管理)でも使える

ひとつのリポジトリに複数のパッケージが入っているモノレポ構成にも対応しています。専用のレシピが公式ドキュメントで紹介されており、大規模なプロジェクトでも柔軟に運用できます。

まとめ

release-itは「リリース作業の面倒くさい部分をすべて引き受けてくれる」ツールです。バージョン番号を手で書き換えて、コミットして、タグを打って、プッシュして……という繰り返しの作業から解放されます。

設定ファイルひとつで自分のプロジェクトに合わせたリリースフローを定義できるため、小規模な個人プロジェクトから大規模なチーム開発まで幅広く活用できます。まずはnpm init release-itでかんたんに始めてみて、慣れてきたら設定をカスタマイズしていくのがおすすめです。リリース作業の自動化は、開発体験を大きく向上させる投資のひとつといえるでしょう。