GitHub Actions(release-please-action)でバージョン管理をやってみた

GitHub Actions(release-please-action)でバージョン管理をやってみた

2026.03.10

歴史シミュレーションゲーム好きのくろすけです!

ずっとサボっていた Terraform カスタムモジュールのバージョン管理をしないといけない季節だなと思い、リポジトリの整備から始めました。
その際にバージョン管理を Github Actions で自動化してくれる release-please-action なるものがあることを知り、使用してみたので簡単にまとめてみます。

概要

release-please-action は Google が開発した OSS で、Conventional Commits のコミットメッセージを解析して自動でバージョンを決定し、Release PR の作成・タグ付け・GitHub Release の作成までを自動化してくれます。

https://github.com/googleapis/release-please-action

やってみた

1. ワークフローファイルの作成

.github/workflows/release.yml を作成します。

# .github/workflows/release.yml
name: Release
on:
    push:
        branches: [main]
jobs:
    release:
        runs-on: ubuntu-latest
        permissions:
            contents: write
            pull-requests: write
        steps:
            - uses: googleapis/release-please-action@v4
              with:
                  release-type: terraform-module

release-type: terraform-module を指定することで、Terraform モジュール向けの設定が適用されます。

permissions の設定が重要で、contents: writepull-requests: write の両方が必要です。これを忘れると後述のエラーが発生します。

2. 初期バージョンの設定

初期バージョンはデフォルトでは、v1.0.0 から始まります。
今回のモジュールはこれから開発を始めるため、リポジトリルートに release-please-config.json を作成して初期バージョン v0.1.0 としました。

{
  "initial-version": "0.1.0"
}

release-please-config.json のデフォルトの読み込みパスはリポジトリルート(release-please-config.json)です。別の場所に置きたい場合は release.ymlconfig-file で明示的に指定できます。

- uses: googleapis/release-please-action@v4
  with:
    release-type: terraform-module
    config-file: .github/release-please-config.json  # パスを変更する場合

initial-version は release-please-action v4 のアクション入力(with の引数)として廃止されており、release-please-config.json に記述する必要があります。

3. ハマりポイント:PR 作成権限エラー

ワークフローを実行すると以下のエラーが発生しました。

Error: release-please failed: GitHub Actions is not permitted to create or approve pull requests.

GitHub リポジトリ側の設定変更が必要です。

Settings > Actions > General > Workflow permissions で以下を設定します。

  • Read and write permissions を選択
  • Allow GitHub Actions to create and approve pull requests にチェック

4. 動作確認

設定完了後、main に Conventional Commits 形式でコミットを push すると Release PR が自動作成されます。

feat!: xxxx   → MAJOR バージョンアップ
feat: xxxx    → MINOR バージョンアップ
fix: xxxx     → PATCH バージョンアップ

CleanShot20260310at11.17.08@2x.png
CleanShot20260310at11.13.47@2x.png
CleanShot20260310at11.12.14@2x.png

Release PR をマージすると Git タグと GitHub Release が自動作成されます。

CleanShot20260310at11.17.46@2x.png

※変更漏れがあった場合は、Release PR をマージする前に追加で main に push するだけです。release-please が既存の Release PR を自動更新してくれます。

あとがき

release-please-action は簡単に導入でき、バージョン管理を自動化してくれるので非常に便利です。
一度設定してしまえば、あとはコミットメッセージを Conventional Commits 形式で書くだけで自動的にバージョン管理されるので非常に便利です。

バージョン管理を怠けていた自分にはありがたい...
これで自分用の Terraform モジュールをバージョン管理していこうと思います!

以上、くろすけでした!

この記事をシェアする

FacebookHatena blogX

関連記事