導入
リリースプルリクエストを毎回手動で作成するのは面倒ですよね?GitHubを利用している多くの開発者がこの手間に悩んでいると思います。今回は、リリースPRを自動化してくれる便利なツール「git-pr-release」をご紹介します。他にもリリース自動化のツールはありますが、git-pr-releaseが使いやすそうなので使用しました。
git-pr-releaseの概要
具体例と詳細説明
git-pr-releaseは、開発ブランチにマージされたプルリクエストを自動的に収集し、その内容をもとに「リリースプルリクエスト」を作成してくれるツールです。これにより、QAやプレリリースチェックが一層簡単になります。具体的には、次のような機能があります。
-
リリースPRの自動生成
マスターブランチにマージされたプルリクエストを集計し、そのリストを元にリリースプルリクエストを自動生成します。 -
PRの内容集計
リリースPRのボディには、リリースされる機能リストやプルリクエストの内容が自動で含まれます。
利用手順
実際にgit-pr-release,github actionsを使ってリリースプルリクエストを自動生成する手順を紹介します。
# .git-pr-release.yml
name: Create Release Pull Request
on:
push:
branches: [staging]
workflow_dispatch:
jobs:
release-pull-request:
permissions:
pull-requests: write
contents: read
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: 3.1
- run: gem install --no-document git-pr-release
- run: git-pr-release
env:
GIT_PR_RELEASE_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GIT_PR_RELEASE_BRANCH_PRODUCTION: main
GIT_PR_RELEASE_BRANCH_STAGING: staging
GIT_PR_RELEASE_LABELS: release
GIT_PR_RELEASE_TEMPLATE: .github/release_pr_template.erb
TZ: Asia/Tokyo
コードの説明
on:
push:
branches: [staging]
workflow_dispatch:
push: stagingブランチへのプッシュがトリガーとなります。
workflow_dispatch: 手動でこのワークフローを実行することも可能です。
jobs:
release-pull-request:
permissions:
pull-requests: write
contents: read
runs-on: ubuntu-latest
pull-requests: write: GITHUB_TOKEN
にプルリクエストの書き込み権限を付与します。
contents: read: GITHUB_TOKEN
にコンテンツの読み取り権限を付与します。
runs-on: このジョブは最新のUbuntu環境で実行されます。
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: 3.1
- run: gem install --no-document git-pr-release
actions/checkout@v4
: リポジトリのコードをチェックアウトします。
ruby/setup-ruby@v1
: Ruby環境をセットアップします。
ruby-version
: 3.1: Rubyのバージョンを3.1に設定します。
gem install --no-document git-pr-release
: git-pr-releaseというGemをドキュメントなしでインストールします。
- run: git-pr-release
env:
GIT_PR_RELEASE_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GIT_PR_RELEASE_BRANCH_PRODUCTION: main
GIT_PR_RELEASE_BRANCH_STAGING: staging
GIT_PR_RELEASE_LABELS: release
GIT_PR_RELEASE_TEMPLATE: .github/release_pr_template.erb
TZ: Asia/Tokyo
git-pr-release
: git-pr-releaseコマンドを実行してリリースプルリクエストを作成します。
env:
GIT_PR_RELEASE_TOKEN
: GitHubトークンを環境変数として設定します。
GIT_PR_RELEASE_BRANCH_PRODUCTION
: 本番ブランチをmainに設定します。
GIT_PR_RELEASE_BRANCH_STAGING
: ステージングブランチをstagingに設定します。
GIT_PR_RELEASE_LABELS
: プルリクエストに付与するラベルをreleaseに設定します。
GIT_PR_RELEASE_TEMPLATE
: リリースプルリクエストのテンプレートを指定します。
TZ`: タイムゾーンを東京(Asia/Tokyo)に設定します。
# .github/release_pr_template.erb
Release <%= Time.now.strftime('%Y-%m-%d') %>
<% pull_requests.each do |pr| -%>
<%= pr.to_checklist_item %>
<% end -%>
メリット・デメリット
メリット
時間の節約: 毎回手動でリリースプルリクエストを作成する手間が省けます。
自動化によるミスの削減: 自動で集計されるため、人的ミスが減ります。
簡単な設定: 初期設定が非常に簡単で、すぐに導入できます。毎回マージされるたびにPRも書き換えられるのでその点も心配ありません!
デメリット
特に大きなデメリットはありません。手動での作成に比べて圧倒的に効率が良いです。
総括と結論
git-pr-releaseを使うことで、リリースプルリクエストの作成が驚くほど簡単になります。これにより、手間と時間を大幅に節約でき、リリースのプロセスがスムーズになります。まだ手動でリリースプルリクエストを作成している方は、ぜひこのツールを試してみてください。きっとその便利さに驚くことでしょう。
皆さんもぜひ、git-pr-releaseを導入してリリースPR自動化の恩恵を受けてみてください!