公開日:
更新日:
カテゴリー:

GitHub Actionsで日付ベースのリリースを自動生成する

目次

新しいバージョンをリリースする際にリリースノートを手動で作成するのは手間がかかりミスも発生しやすいです。また、リリースタグの管理も手作業では煩雑です。

そこで有効なのがGitHub Actionsを活用したリリースの自動生成です。

本記事では実際に弊事務所で運用しているリリースの自動生成ワークフローを紹介します。

リリースの自動生成ワークフロー

手動でトリガーされ、GitHub CLIを使用してリリースの下書きを生成するワークフローです。

.github/workflows/create-release.yml
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で公開しています。

記事をシェアする
記事がお役に立てたらシェアしていただけると嬉しいです!