GitHub Actionsでプルリクエストがマージされた時、自動的にGitタグをつける

はじめに

こんにちは。新卒2年目の岡崎です。今回は、GitHub Actionsでプルリクエストがマージされた時、自動的にGitタグをつける方法を紹介します。

また、この記事はGitHub Actionsのことがあまり分からない初心者向けの記事になっております。

実装

実装例を紹介します。

workflows配下にYAMLファイルを作成し、実装を行います。

.
├─ .github
    └─workfrows

実際に実装したYAMLファイルは以下です。

name: Git tag | Create
run-name: ${{ github.workflow }} 【${{ github.ref_name }}】

on:
  pull_request:
    branches:
      - main
    types: [closed]

jobs:
  build:
    if: github.event.pull_request.merged == true
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: '0'

      - name: Bump version and push tag
        uses: anothrNick/github-tag-action@1.67.0
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          DEFAULT_BUMP: ${{ ((contains(github.event.pull_request.head.ref, 'bugfix') || contains(github.event.pull_request.head.ref, 'hotfix')) && 'patch') || 'minor' }}
          WITH_V: true
          RELEASE_BRANCHES: main
          INITIAL_VERSION: v0.0.0

実装例の大まかな解説を行います。

name

nameではワークフローの名前を決定します。またrun-nameでは、ワークフロー実行履歴一覧のrunのタイトル部分を自由に指定することができます。

on

onでは、いつ実行するのか決定することができます。

今回は、プルリクエストがマージされたタイミングでGitタグを自動的に作成したいので、on以下の実装が

on:
  pull_request:
    branches:
      - main
    types: [closed]

となっています。

jobs

ここでは指定した処理を実行します。

jobは一つ以上のstepで構成します。今回の実装だと以下のようになります。

 steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: '0'

      - name: Bump version and push tag
        uses: anothrNick/github-tag-action@1.67.0
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          DEFAULT_BUMP: ${{ ((contains(github.event.pull_request.head.ref, 'bugfix') || contains(github.event.pull_request.head.ref, 'hotfix')) && 'patch') || 'minor' }}
          WITH_V: true
          RELEASE_BRANCHES: main
          INITIAL_VERSION: v0.0.0

Gitタグの付与を自動化する方法として様々な方法がありますが、今回はgithub-tag-actionを導入しました。

実装が終わったら、最後にプルリクエストをマージします。(今回のケースではプルリクエストのマージですが、YAMLファイルに行った実装に合わせて確認を行ってください。)

プルリクエストがマージされた時にGitタグが作れていれば、完了です。

ただし、Gitタグを最初に作る場合、手動で作る必要があるので注意をしてください。

最後に

今回は、GitHub Actionsでプルリクエストがマージされた時に自動的にGitタグをつける方法について紹介しました。いつも何気なく使っているものかもしれませんが、案外調べてみると知識が整理されました。

最後に、エキサイトではデザイナー、フロントエンジニア、バックエンドエンジニア、アプリエンジニアを絶賛募集しております。

興味があればぜひぜひ連絡ください!

www.wantedly.com