📌

Github Actionsで、リリース用PRを作成・マージすると自動でタグを打つようにする

2024/05/03に公開

はじめに

個人開発のリポジトリに tagpr を導入し、GitHub Actionsでリリース用PRを作成・マージすると自動でタグを打つようにしました。

tagprとは

https://github.com/Songmu/tagpr
tagpr を機能強化してv1.0.0をリリースしました | おそらくはそれさえも平凡な日々

  • リリースに伴うファイル変更をおこない、pull request化してくれる
  • 変更は仮変更でその後開発者側で調整可能
  • 全くファイル変更がないケースも対応可能
  • それがマージされるとsemverタグが打たれる

これらをGitHub Actionsで自動で行ってくれます。

やりたいこと

今回の個人開発では以下の運用で開発を行なっています。

  • mainブランチとdevelopブランチで運用
  • mainブランチは本番環境へのデプロイのトリガーとして機能しており、mainブランチにマージされることで、自動的に本番環境へのデプロイプロセスが開始

mainブランチへマージされたタイミングで tagの作成とGithubのリリース作成を行いたい。
これを実現するために、tagpr を導入しました。

導入方法

ワークフロー

Github Actions のワークフローを追加します。

# .github/workflows/tagpr.yml

name: tagpr
on:
  push:
    branches:
      - main

jobs:
  tagpr:
    runs-on: ubuntu-latest
    outputs:
      tagpr-tag: ${{ steps.run-tagpr.outputs.tag }}
    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    steps:
      - name: Check out code
        uses: actions/checkout@v4
        with:
          token: ${{ secrets.GITHUB_TOKEN }}

      - id: run-tagpr
        name: Run tagpr
        uses: Songmu/tagpr@v1

設定

ワークフローを動かすにあたり、リポジトリの Settings > Actions > Generalの Workflow permissions の設定を以下にする必要があります。

結果

mainにPRがマージされると、Github Actionsが動き

  • リリースブランチの作成
  • CHANGELOGの更新
  • PRの作成

を自動で行なってくれます。

次のようなPull Requstが自動で作成されます。

PRにはリリース予定項目の一覧が記載されます。
これがマージされるとリリースされるんだなというのが分かるので便利です。

このRRをマージすると、semverタグが打たれます。

おわりに

この記事では、GitHub Actionsとtagprを利用し、mainブランチへマージされたタイミングで自動的にリリースタグを作成する方法を解説しました。

具体的なワークフロー設定とその結果を示し、この方法により開発フローを自動化できることを示しました。


Discussion