🐙
メインバージョンのブランチを更新する GitHub Actions ワークフロー
カスタム GitHub Actions を利用する際、次のように @ 以降の部分にその GitHub Actions リポジトリの任意のタグ、ブランチ、コミットハッシュを指定することが出来る。
actions/checkoutを利用する例
uses: actions/checkout@v3
そして GitHub Actions を公開する際には、v1
v2
v3
のように、メインバージョンの最新版にアクセスできるタグまたはブランチを提供しておくという慣習がある。上記の v3
もそのような慣習に従って用意されたものである。
私も GitHub Actions を公開する際、はじめは手作業で Git の v1
v2
v3
というタグを打っていたのだが、この作業がなかなかに面倒であった。しかし最近は Actions のリポジトリに次のようなワークフローを用意して、この作業を自動化している。
name: Main Version Branch
on:
release:
types: [released]
jobs:
main-version-branch:
name: Create main version branch
runs-on: ubuntu-latest
steps:
- name: Check out
uses: actions/checkout@v3
- name: Push HEAD to main version branch
run: |
if [[ '${{ github.event.release.tag_name }}' =~ ^(v[0-9]+)\.([0-9]+)\.([0-9]+)$ ]]; then
git push --force origin "HEAD:refs/heads/${BASH_REMATCH[1]}"
fi
このワークフローにより v1
v2
v3
といったメインバージョンのブランチの更新が自動で行われる。タグではなくブランチにした理由は、このワークフローを作る際に参考にさせて頂いた下記の投稿でも述べているとおり、継続的に更新されるものはタグよりブランチの方が相応しいと思ったからである。
このワークフローは release
イベントの released
タイプをフックに起動している。こうしておくと、draft や pre-release 状態の Release を作成しても起動せず、それらの状態を変更して正式リリースした場合に起動するので、まずは draft や pre-release で v2.3.4
のようなタグを作成してそのタグの Actions を利用者にお試し提供し、安定しているなと思ったら正式リリース ⇒ v2
ブランチが自動更新される、という挙動になるので便利である。
Discussion