GoReleaserで作成したGitHubのRelease

GitHub Actionsでgoreleaser-action を使うとGoReleaserでGitHubのRelease作成できる。

jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
	(略)
      - name: Run GoReleaser
        uses: goreleaser/goreleaser-action@v6
        with:
          version: latest
          args: release --clean
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

上記ワークフローで作成されるDescriptionに記載されるのはコミットの一覧になる。
この一覧をPull Requestごとの説明文に変更したい。

gh release createコマンドで先にReleaseを作成する

goreleaser-actionは既存のReleaseがある場合、Releaseを作成しない。
そのため、別の方法で先にReleaseを作成すればよい。

gh release createコマンドでPull Requestごとの説明文を自動生成できる。
goreleaser-actionをする前にgh release createコマンドを実行してReleaseを作成してしまうとよい。

jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
	(略)
	# 追加
      - name: Create release
        run: gh release create ${{ github.ref_name }} --generate-notes
        env:
          GITHUB_TOKEN: ${{ github.token }}

      - name: Run GoReleaser
        uses: goreleaser/goreleaser-action@v6
        with:
          version: latest
          args: release --clean
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

gh release createコマンドの--generate-notesオプションでPull Requestごとの説明文が自動生成される。

gh release createコマンドの設定のために.github/release.ymlファイルを作成する。

changelog:
  categories:
    - title: What's Changed
      labels:
        - '*'
      exclude:
        labels:
          - dependencies
    - title: Dependencies
      labels:
        - dependencies

上記設定でdependenciesラベルの付加されたPull RequestはDependenciesセクションにまとめられる。
それ以外はWhat's Changedセクションにまとめられる。