【入門編】Bitbucketリポジトリの『タグ』運用を自動化する:セマンティックバージョニングとリリース自動化の連動 – バージョン管理・CI/CD活用バイブル

やあ。CI/CDの泥沼で苦闘し、毎日手作業でバージョン番号を上げている君へ。

「リリース作業」という言葉を聞いて、ため息をついたことはないかな? Gitタグを手打ちし、CHANGELOGをコピペし、Bitbucketの画面をポチポチ操作する……。そんな「非エンジニア的な労働」は、今日で卒業しよう。

今日は、Bitbucket Pipelinesを使って、コミットメッセージから次期バージョンを自動判定し、タグ付けとリリースノート生成までを完全自動化する「究極の省エネフロー」を伝授する。これをマスターすれば、君は「コードを書くこと」だけに集中できるようになる。準備はいいかい?

—

1. なぜ「タグ運用」の自動化が必須なのか?

開発が進むと、どれがどのリリースのコードなのか分からなくなる。セマンティックバージョニング(SemVer: `MAJOR.MINOR.PATCH`)を厳格に運用することで、バグ修正なのか機能追加なのかが一目瞭然になるんだ。

これを自動化する最大のメリットは「人的ミスの排除」と「開発スピードの向上」だ。マシンは疲れないし、タグの打ち間違いもしない。パイプラインが勝手にやってくれる世界へ行こう。

—

2. 準備するもの:Commitizenの導入

「どんなメッセージならバージョンを上げるべきか?」を人間が判断するのは手間だ。ここで、コミットメッセージの標準化ツール `Commitizen` を導入する。

まずはプロジェクトのルートで以下のコマンドを叩いてくれ。

npmを使っている場合、開発環境にインストール
npm install –save-dev commitizen cz-conventional-changelog

package.jsonに設定を追加(これだけでコミットが標準化される)
npx commitizen init cz-conventional-changelog –save-dev –save-exact

これで、`git commit` の代わりに `npx cz` を使うだけで、「feat: (新機能)」「fix: (バグ修正)」といったタグが自動で構造化されるようになる。これが後の自動化の鍵になるんだ。

—

3. Bitbucket Pipelinesの心臓部を作る

`bitbucket-pipelines.yml` を作成しよう。ここが君の自動化のエンジンだ。今回は「Node.js + Semantic Release」という最強の組み合わせで構成する。

image: node:18

pipelines:
branches:
main: # メインブランチへのマージ時に走らせる

  • step:

name: Release and Tag
script:
# 1. 認証情報を設定

  • git config user.name “Pipeline Bot”
  • git config user.email “bot@example.com”

# 2. 自動リリースツールを実行
# これがコミットログを解析し、タグ打ち、リリースノート生成まで全てやる

  • npx semantic-release

ここでのポイント: `semantic-release` というライブラリを使うのが現代の定石だ。こいつはコミットメッセージを解析し、`feat:` があればMINORを、`fix:` があればPATCHを自動インクリメントし、Gitタグを打ってBitbucketの「リリース」ページに内容を書き込んでくれる。

—

4. 精度を高めるための「HelloWorld」:動作確認

いきなり本番環境で回すのは怖いよね。まずは最小構成で「動く」ことを確認しよう。

1. 環境変数の設定: Bitbucketの `Repository settings` > `Pipelines` > `Repository variables` に `GH_TOKEN` (またはBitbucket用App Password) を設定する。これはパイプラインがGitに書き込むための「鍵」だ。
2. テスト用のコミット:

npx cz
# “feat: すごい機能を追加” と入力してコミット
git push origin main

3. 確認: Bitbucketの「Pipelines」画面を開いてくれ。緑色のバーが走り、終了後にリポジトリの「Tags」を確認すると……どうだい? 自動的に `1.0.1` のようなタグが生成されているはずだ。

—

5. 先輩からのアドバイス:ここが現場の「差」になる

最後に、これだけは覚えておいてほしい。

  • マージ戦略: この運用をするなら、`main` ブランチ以外への直接プッシュは禁止しよう。`branch permission` を設定して、必ずプルリクエスト経由でマージさせるんだ。
  • 失敗を恐れない: もしリリースが失敗しても、パイプラインのログを見れば「なぜバージョンが上がらなかったか」がすぐ分かる。手作業の「なぜ動かない?」というブラックボックスから脱却できるのが、自動化の真の価値なんだ。

—

まとめ:君の新しい開発フロー

1. `npx cz` でコミットする(標準化)。
2. プルリクエストを作成し、レビュー後にマージする。
3. Bitbucket Pipelinesが自動でバージョンを決定し、タグを打ち、リリースノートを書く。

たったこれだけ。明日から君は、リリース作業に時間を取られることなく、コーヒーを飲んで次の機能開発に頭を巡らせる余裕ができるはずだ。

「面倒なことは、全てマシンにやらせる」。これが伝説のエンジニアへの第一歩だよ。
何か詰まったら、いつでも聞きに来てくれ。君の自動化を全力でサポートするよ!

タイトルとURLをコピーしました