🐙
マージ後に自動タグ付け!GitHub Actionsで簡単バージョニング管理
※この文章はテンション高めなChatGPTが書いています。
概要:
このワークフローは、master
ブランチにPRがマージされるたびに自動でタグを付ける便利な仕組みです。開発の進捗に合わせてタグを生成し、バージョン管理をシンプルにすることで、リリースの整理や確認を容易にします。このタグ付けのプロセスは日時に基づいて行われ、スムーズなバージョン管理が可能になります。
前の記事:
詳細コード
name: Auto Tag on Merge to Master
on:
workflow_run:
workflows: ["Auto Merge PR on Successful PR Creation"] # auto-merge.yml の name を指定
types:
- completed
jobs:
create-tag:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
steps:
- name: Checkout master branch
uses: actions/checkout@v3
with:
ref: master
fetch-depth: 0
- name: Set up Git configuration
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
- name: Fetch all tags
run: git fetch --tags
- name: Generate new tag
id: new_tag
run: |
date_part="v$(date +"%Y%m%d")"
last_tag=$(git tag --list "${date_part}*" | sort | tail -n 1)
if [ -z "$last_tag" ]; then
new_tag="${date_part}001"
else
seq=$(echo "$last_tag" | sed "s/^${date_part}//")
new_seq=$(printf "%03d" $((10#$seq + 1)))
new_tag="${date_part}${new_seq}"
fi
echo "::set-output name=tag::$new_tag"
- name: Create and push tag
run: |
git tag ${{ steps.new_tag.outputs.tag }}
git push origin ${{ steps.new_tag.outputs.tag }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
詳細解説:
このワークフローは「Auto Merge PR on Successful PR Creation」ワークフローの完了後に動作します。PRが成功してマージされると、自動でタグが作成され、master
ブランチにプッシュされます。
-
トリガー設定:
- 前段階の「Auto Merge PR on Successful PR Creation」が成功 (
completed
&success
) したときに発動。
- 前段階の「Auto Merge PR on Successful PR Creation」が成功 (
-
ジョブ「create-tag」:
-
チェックアウト:
master
ブランチを最新状態で取得。 -
Git設定:
- GitHub Actions用のユーザー名とメールアドレスを設定。
-
タグの生成:
- 日付に基づくバージョンを生成(例:
vYYYYMMDD001
)。 - 当日生成された最後のタグから、連番をインクリメント。タグがその日に初めての場合は
001
からスタートし、重複しないよう自動的に番号を更新。
- 日付に基づくバージョンを生成(例:
-
タグの作成とプッシュ:
- 生成したタグを
master
ブランチにプッシュし、リモートリポジトリに自動追加。
- 生成したタグを
-
チェックアウト:
使い方とポイント
-
バージョン管理が簡単に:
開発やデプロイのたびに、日付ごとに整理された新しいタグが自動で生成されます。 -
エラーの少ない運用:
日付とインクリメントの組み合わせでタグの重複を防ぎ、バージョニングを一貫性を保ちながら管理できます。
コードで手間いらずのバージョン管理を実現!
このタグ付けワークフローで、リリースの整理がもっと楽に。日付順にタグが整うため、リリースの進捗や履歴が一目でわかります。毎回のタグ付け作業から解放され、時間を節約しながらスムーズな開発環境を維持しましょう。
Discussion