[GitHub Actions] モノレポ環境でGitHub Actionsを使ってPRタイトルをチェックする方法

2024-09-12 hit count image

モノレポ環境でGitHub Actionsを使ってPR(Pull Request)を作成した際、PRのタイトルをチェックする方法について説明します。

概要

私は Release Drafter を使って GitHub のリリースノートを自動化しています。

この Release DrafterはGitHubのPRのLabelを基準に動作します。Release DrafterはLabelを自動で生成する機能を提供しており、この時PRのタイトルを使います。そのため、PRのタイトルは重要です。

以前はPRのタイトルをチェックするため、Conventional PR Title Actionを使いました。

しかし、現在のモノレポプロジェクトでは、この Conventional PR Title Actionだけでは十分ではなく、他のGitHub Actionsを使うことになりました。

今回のブログポストでは、action-check-pr-titleを使ってPRを作成した際、PRのタイトルをチェックする方法について説明します。

action-check-pr-title

action-check-pr-titleは正規表現を使ってPRのタイトルをチェックするGitHub Actionsです。

GitHub Actions 生成

action-check-pr-titleを使ってPRのタイトルをチェックするGitHub Actionsを生成するために、.github/workflows/check_pr_title.ymlファイルを生成し、以下のように修正します。

name: Check PR Title

on:
  pull_request:
    types:
      - opened
      - reopened
      - edited
      - synchronize

jobs:
  check-pr-title:
    runs-on: ubuntu-latest
    timeout-minutes: 1
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v2

      - name: Check PR Title
        uses: Slashgear/[email protected]
        with:
          regexp: '(feat|fix|chore|docs|style|refactor|test|build|ci)\((SERVICE1|SERVICE2|template|components|config|common)\): .+'
          helpMessage: "Example: 'feat(SERVICE1): example of title'"

Pull Requestのタイトルをチェックする部分をもう少し詳しく見てみます。

      - name: Check PR Title
        uses: Slashgear/[email protected]
        with:
          regexp: '(feat|fix|chore|docs|style|refactor|test|build|ci)\((SERVICE1|SERVICE2|template|components|config|common)\): .+'
          helpMessage: "Example: 'feat(SERVICE1): example of title'"

action-check-pr-titleが提供するregexpオプションを使ってPRのタイトルをチェックします。ここで使う正規表現は以下のようなPRタイトルを許可します。

feat(SERVICE1): Add new feature
fix(SERVICE2): Fix bug
refactor(common): Refactor code
...

モノレポを使っているため、Conventional CommitsScope領域にサービス名を設定し、これをチェックするように設定しました。

完了

これでaction-check-pr-titleを使ってPRを作成した際、PRのタイトルをチェックする方法について説明しました。Conventional PR Title Actionでも正規表現チェックが可能ですが、設定が簡単ではないため、action-check-pr-titleを使うことにしました。

皆さんも簡単に正規表現でPRタイトルをチェックしたい場合は、action-check-pr-titleを使ってみてください。

私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!

アプリ広報

今見てるブログを作成たDekuが開発したアプリを使ってみてください。
Dekuが開発したアプリはFlutterで開発されています。

興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。

Posts