git-pr-release のGo言語実装を作った
開発の背景
git-pr-release は git-flow のようなリリース用のブランチが存在する場合に、そのリリース用のブランチへのプルリクエストを自動生成するツールです。
リリースに含まれる機能開発のプルリクエストへのリンクを、リリース用のプルリクエストの概要欄に自動生成してくれるなど便利な機能を持っていました。
git-pr-release は Ruby で実装されているため使用するにはインストールが必要です。GitHub Actions で Ruby を使用するには ruby/setup-ruby が利用できます。しかし self-hosted な runner で setup-ruby を使用するには事前に Ruby を $RUNNER_TOOL_CACHE
が指すディレクトリにインストールしておく必要があります。
開発のサポートを行うツールのために Ruby をインストールする手間をかけてその手順を運用し続けるのはコストに見合わないと考えて、Go言語による実装を作りました。
作ったもの
git-pr-release と同様に次の画像のようなプルリクエストを自動生成してくれます。
実行ファイルをダウンロードして手元の PC でコマンドを実行することもできますが、基本的に GitHub Actions で利用することを想定しています。
以下がサンプルのワークフローファイルです。
name: Create Release Pull Request
on:
push:
branches:
- main
jobs:
create-release-pr:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Setup git-pr-release-go
uses: KeisukeYamashita/setup-release@v1.0.2
with:
repository: odanado/git-pr-release-go
arch: x86_64
platform: Linux
- run: git-pr-release-go --from main --to release/production
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
最後に
git-pr-releaseとGitHub Actionsでワンクリックデプロイを実現する | おそらくはそれさえも平凡な日々 でも紹介されていますが、プルリクのマージボタンをクリックするだけでリリースが完了するのはお手軽さ満点でおすすめです。
興味を持った方は git-pr-release-go を利用してみてください。バグや機能要望は GitHub の issue か Twitter でお気軽にご連絡ください。
Discussion