◾️はじめに
https://dk521123.hatenablog.com/entry/2025/03/31/153442
の続き。 今回は、リリース自動化ツールがどんなツールがあるのかと その中のRelease Please (release-please)について触れる
目次
【1】リリース自動化ツール 1)Release Please (release-please) 2)Semantic Release (semantic-release) 【2】release-pleaseの導入 Step1:Githubの設定 Step2:Github Actionsを追加(v1.0.0 から始まる場合) 【3】使い方 【4】Tips 1)v0.0.1から始めるには 2)Version変更したい場合
【1】リリース自動化ツール
* ツール候補としては、以下の通り。 1)Release Please (release-please) 2)Semantic Release (semantic-release) => 今回は、「1)Release Please (release-please)」を扱う => 「2)Semantic Release (semantic-release)」は軽く触ったけど エラーがあったので、、、
| 特徴項目 | Release Please | Semantic Release |
|---|---|---|
| バージョンの決め方 | 最新のタグ + コミット内容から計算 | コミットメッセージの規則に基づいて自動決定 |
| コミットメッセージの制約 | 必須ではない(ただし Conventional Commits を推奨) | Conventional Commits 準拠が必須 |
| プルリク型か、自動リリース型 | PRベース:release-please が PR を作成 |
自動リリース型:マージ後すぐにリリース |
| GitHub Releases の作成 | 可能(自動でリリースノートを生成) | 可能(豊富な設定オプションあり) |
| GitHub Actionsとの相性 | 非常に良い(公式Actionあり) | 非常に良い(npm script や公式Actionあり) |
| 対応プロジェクト構成 | MonoRepo対応・複数パッケージ対応 | MonoRepo対応(構成がやや複雑) |
| 初学者向けか | やや扱いやすい・GitHubフローに馴染みやすい | 学習コストが高め(ルール厳守が必要) |
1)Release Please (release-please)
* Google製の自動リリースPR生成ツール * 自動でタグ付け&GitHub Release作成 * 複数パッケージ対応(MonoRepo対応)
https://github.com/googleapis/release-please
2)Semantic Release (semantic-release)
* Conventional Commits に基づいてリリースを完全自動化 + 例: feat: 新機能追加, fix: バグ修正 * npx semantic-release でリリース処理を実行 * 自動で: + バージョン番号決定 + Gitタグ作成 + リリースノート生成 + npm/pypiなどへの公開(任意)
https://github.com/semantic-release/semantic-release
* 詳細は、以下の関連記事を参照のこと
リリース自動化ツール 〜 semantic-release / 入門編 〜
https://dk521123.hatenablog.com/entry/2025/11/28/001355
【2】release-pleaseの導入
* 以下で導入できる ~~~~ Step1:Githubの設定 Step2:Github Actionsを追加 ~~~~
Step1:Githubの設定
[1] [Settings]-[Actions]-[General]まで移動し、以下を選択し、Saveボタン押下 + Actions permissions で「Allow all actions and reusable workflows」を選択 + Workflow permissions で「Read and write permissions」を選択 + Workflow permissions で「Allow GitHub Actions to create and approve pull requests」を選択
Step2:Github Actionsを追加(v1.0.0 から始まる場合)
.github/workflows/release-please.yml
name: Release Please on: push: branches: - main permissions: contents: write pull-requests: write jobs: release: runs-on: ubuntu-latest steps: - uses: googleapis/release-please-action@v4 with: release-type: simple token: ${{ secrets.GITHUB_TOKEN }}
【3】使い方
* mainブランチにPushするだけ => PushするとRelease・タグが更新されていく * コメントは、Semantic Versioningに従う方がいい
Semantic Versioning / Conventional Commits
https://dk521123.hatenablog.com/entry/2025/03/31/153442
【4】Tips
1)v0.0.1から始めるには
* 以下のサイトを参考に作成した。 # ChatGPTに聞いても解決しなかった案件、、、
https://tai-kun.dev/bin/release-please-action-v4/
[1] 以下のファイルを追加 + .config/rp-manifest.json + package.json [2] .github/workflows/release-please.ymlを修正
.config/rp-manifest.json
{ ".": "0.0.1" }
package.json (nameは自分のリポジトリ名を指定)
{ "name": "demo-repo", "version": "0.0.1" }
.github/workflows/release-please.yml
name: Release Please on: push: branches: - main permissions: contents: write pull-requests: write jobs: release: runs-on: ubuntu-latest steps: - uses: googleapis/release-please-action@v4 id: rp with: release-type: simple token: ${{ secrets.GITHUB_TOKEN }} manifest-file: .config/rp-manifest.json - name: outputs run: | echo "${{ steps.rp.outputs.releases_created }}" echo "${{ steps.rp.outputs.paths_released }}" echo "${{ steps.rp.outputs.prs_created }}"
2)Version変更したい場合
https://github.com/googleapis/release-please?tab=readme-ov-file#how-do-i-change-the-version-number
git commit --allow-empty -m "chore: release 2.0.0" -m "Release-As: 2.0.0"
関連記事
Git ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2018/06/29/104028
Github ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/07/18/234652
リリース自動化ツール 〜 semantic-release / 入門編 〜
https://dk521123.hatenablog.com/entry/2025/11/28/001355
Semantic Versioning / Conventional Commits
https://dk521123.hatenablog.com/entry/2025/03/31/153442
Docker compose ~ Pgweb/pgAdmin ~
https://dk521123.hatenablog.com/entry/2023/08/10/111919