2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GitHub の Issueを元にリリースノートを自動作成する

Last updated at Posted at 2021-01-24

これはなに

git のタグをプッシュした際に gren と GitHub Actions を使いリリースノートを自動生成するワークフローを作成する手順をまとめたもの。

tagのプッシュをトリガーにGitHub Actions を実行する

tagのプッシュをトリガーにするには以下のようにすると実現することができます。

name: XXX

on:
  push:
    tags:
      - 'v*'
  workflow_dispatch:

GitHub Actions では他にも push や プルリク作成、スケジュール実行などの方法でワークフローを開始することができます。

gren を使いリリースノートを作成する

リリースノートの作成を自動化するには、もとの情報を引っ張ってくる必要があります。
選択肢としては、GitHubのIssueとコミット履歴があったのですが Issue の方が重要な情報を記述していることや、コミット履歴だと順番がごちゃごちゃになる可能性があることがから今回は Issueの情報を元にリリースノートを作成しようと思います。

自前で作ることもできますが、今回は gren を使います。

GREN_GITHUB_TOKEN にトークンをセットして gren release とコマンドを実行することで直近のタグと前回のタグの間にクローズされたIssueをまとめてくれます。

Issue以外にもコミット履歴を元に生成したり他にもオプションがあるため好みに合わせてリリースノートをカスタマイズできます。

gren を GitHub Actions に組み込む

GitHub Actions に組み込むためには gren が node.js に依存しているため設定を追加してコマンドw実行します。
最終的には以下のようになりました。

name: Release

on:
  push:
    tags:
      - 'v*'
  workflow_dispatch:

jobs:
  note:
    name: Release
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Use Node.js
        uses: actions/setup-node@v1

      - name: Install Gren
        run: npm install github-release-notes -g

      - name: Create a release
        run: gren release --username=xxx --repo=xxx--tags=${GITHUB_REF#refs/tags/}
        env:
          GREN_GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'

--tags を指定しないと連続でタグを作成プッシュしたときに動作しなかったため明示的にバージョンを指定してコマンドを実行しています。

以下のようにリリースが自動生成されます。Issueが紐づき求めていた挙動を実現できました。

Screen Shot 2021-01-24 at 18.59.21.png

まとめ

  • GitHub Actions を使って自動的にリリースノートを作成した
  • gren では Issueやコミットログを元にリリースノートを作成できる

サンプルも作成したのでよければ参考にしてください
https://github.com/decoch/gren-example

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?