🐡

GitHub Actionsでmainマージ時にリリースタグを自動作成する

2024/03/09に公開

結論

release/a.b.cをベースブランチとしたPull Requestをmainブランチに取り込むと自動でa.b.cというtagを作成してくれるGitHub Actionsのworkflowを作成しました。

例) release/1.0.0であればmainへのマージコミットに対して1.0.0というtagを作成します

name: Auto Release Tag
run-name: Tag for ${{ github.head_ref }}
on:
  pull_request:
    types:
      - closed
    branches:
      - main

jobs:
  main:
    permissions:
      contents: write
    if: github.event.pull_request.merged == true && contains(github.head_ref, 'release')
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Push tag
        run: |
          release_branch=${{ github.head_ref }}
          version=$(echo $release_branch | awk -F/ '{print $2}')
          git tag ${version} && git push origin ${version}

ポイントは${{ github.head_ref }}でPull Requestのベースブランチが取得できる点です。

Discussion