1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

導入

リリースプルリクエストを毎回手動で作成するのは面倒ですよね?GitHubを利用している多くの開発者がこの手間に悩んでいると思います。今回は、リリースPRを自動化してくれる便利なツール「git-pr-release」をご紹介します。他にもリリース自動化のツールはありますが、git-pr-releaseが使いやすそうなので使用しました。

git-pr-releaseの概要

具体例と詳細説明

Screenshot 2024-06-26 at 0.03.44.png

git-pr-releaseは、開発ブランチにマージされたプルリクエストを自動的に収集し、その内容をもとに「リリースプルリクエスト」を作成してくれるツールです。これにより、QAやプレリリースチェックが一層簡単になります。具体的には、次のような機能があります。

  1. リリースPRの自動生成
    マスターブランチにマージされたプルリクエストを集計し、そのリストを元にリリースプルリクエストを自動生成します。

  2. 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も書き換えられるのでその点も心配ありません!

デメリット

特に大きなデメリットはありません。手動での作成に比べて圧倒的に効率が良いです。

Screenshot 2024-06-26 at 0.06.26.png

総括と結論

git-pr-releaseを使うことで、リリースプルリクエストの作成が驚くほど簡単になります。これにより、手間と時間を大幅に節約でき、リリースのプロセスがスムーズになります。まだ手動でリリースプルリクエストを作成している方は、ぜひこのツールを試してみてください。きっとその便利さに驚くことでしょう。

皆さんもぜひ、git-pr-releaseを導入してリリースPR自動化の恩恵を受けてみてください!

参考記事

git-pr-release
GitHub Actions リリースプルリクエストを自動生成する

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?