この記事は、VALU Advent Calendarの9日目の記事です。
こんにちは、Xamarin人材です。今年もQiitaに書く季節がやってきました。
今回のお題はGithub Actionsです。
やりたいこと
弊社のアプリのブランチフローを↓こんな感じにしようとしてまして(一部簡略化してます)。
releaseブランチでのビルドに対して開発環境でのQAを実施することにしてるのですが、
QAの方に「このPRがマージされてるよ!」っていうのをわかりやすく楽にお伝えしたいなーと思いました。
上図ですと、 feature/fuga
と feature/piyo
が release/hoge
マージされてるよ!ということをわかりやすくしたい。
そのために、releaseブランチのPullRequestのDescriptionに、
当該releaseブランチにマージされたPRたちが記録されていくようなactionをつくりました。
動作イメージ
リリースブランチのPRを用意
このブランチに、featureブランチをマージしていって機が熟したらリリースするイメージです。
とある機能ブランチのPRを用意
よくあるfeatureブランチです。
開発でのレビューや動作確認が終わったらマージされるやつです。
機能ブランチをマージすると...
こうじゃ!
はい、マージしたPR番号が追記されましたね。うれしい!よね?
実装
https://github.com/takuya-kikuchi/action-track-merged-pr
こちらです。
参考
公式のチュートリアルがえらいわかりやすかったです。
つかいかた
細かい処理はActionとして切り出されているので、 uses
の一言で利用可能です。
なのでこんなWorkflowを書くだけです。かんたん!
また、APIトークンを払い出したりしなくていいのが本当に楽ですね。
name: OnMergedPullRequest
on:
pull_request:
# PRのクローズ時にトリガーされるようにする
types: [closed]
jobs:
track_merged_pr_job:
runs-on: ubuntu-latest
steps:
- name: Track merged PR
uses: takuya-kikuchi/action-track-merged-pr@v1
with:
REPOSITORY_OWNER_NAME: ${{ github.event.pull_request.base.repo.owner.login }}
REPOSITORY_NAME: ${{ github.event.pull_request.base.repo.name }}
MERGED_PR_NUMBER: ${{ github.event.pull_request.number }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
実際の使用例はこちら。
おわりに
AdventCalendarに間に合わせるために慌てて作った(しかし間に合わなかった)Actionなので、怖くてまだプロダクションにはいれてませんが、近いうちにこっそり突っ込もうと思っています。もし事故ったら来年のネタにします。
それではまた。