
新しいバージョンをリリースする際にリリースノートを手動で作成するのは手間がかかりミスも発生しやすいです。また、リリースタグの管理も手作業では煩雑です。
そこで有効なのがGitHub Actionsを活用したリリースの自動生成です。
本記事では実際に弊事務所で運用しているリリースの自動生成ワークフローを紹介します。
リリースの自動生成ワークフロー
手動でトリガーされ、GitHub CLIを使用してリリースの下書きを生成するワークフローです。
name: Create Release
# workflow_dispatchで手動実行可能にするon: [workflow_dispatch]
jobs: create-release: name: Create Release runs-on: ubuntu-latest
# GitHubリポジトリへの書き込み権限を付与 permissions: contents: write
timeout-minutes: 5
env: # GitHub CLIで使用するトークン GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} # 日本時間でタグを生成するためタイムゾーンを設定 TZ: "Asia/Tokyo"
steps: - name: Checkout code uses: actions/checkout@v4
- name: Create Release run: | # 最新リリースのタグを取得 pre_tag=$(gh api /repos/${{ github.repository }}/releases/latest --jq '.tag_name' 2>/dev/null || echo "")
# 新しいタグを生成(YYYY.MM.DD-N形式) IFS='-' read -r pre_release_date pre_release_count <<< "$pre_tag" today=$(date +'%Y.%m.%d') if [[ "$pre_release_date" != "$today" ]]; then pre_release_count=0 fi release_tag="$today-$(($pre_release_count + 1))"
# リリースのドラフトを作成 gh release create $release_tag --generate-notes --draft
このワークフローを実行すると、リリースのドラフトが生成されます。
リリース日や時系列が把握しやすいよう、リリースのタイトルとタグは2025.08.09-1
のような日付ベースの命名を採用しています。同日に複数回リリースする場合は末尾の連番がインクリメントされます。
実際に生成されたリリースが以下になります。
まとめ
このワークフローにより手作業が不要になり、日付+連番形式のタグで一貫したリリース管理が可能になります。
さらに、自動デプロイのワークフローと組み合わせることでリリースの作成からデプロイまで一貫したワークフローを構築できます。
自動デプロイのワークフローについては以下の記事を参照してください。
GitHub Actionsとrsyncでデプロイを自動化する|greencider(グリーンサイダー)
GitHub Actionsとrsyncでデプロイを自動化する方法を解説。ワークフロー作成から設定まで、効率的なデプロイ環境の構築方法を紹介します。
greencd.jp

今回のサンプルコードはGitHubで公開しています。