📑
マスターからメインへの自動同期!GitHub Actionsでメインブランチを常に最新に保つ
※この文章はテンション高めなChatGPTが書いています。
概要:
このワークフローでは、masterブランチの変更がmainブランチにも自動的に反映されるようにします。masterブランチでの更新を確実にmainにも適用し、異なるブランチの間でコードがズレないように保つことが目的です。メインブランチを常に最新に保つことで、開発やテストの一貫性を確保します。
前の記事:
詳細コード
name: Sync Master to Main
on:
workflow_run:
workflows: ["Auto Merge PR on Successful PR Creation"] # auto-merge.yml の name を指定
types:
- completed
jobs:
sync-to-main:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
steps:
- name: Checkout main branch
uses: actions/checkout@v3
with:
ref: main
fetch-depth: 0 # Ensure full history is available
- 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: Pull latest changes from master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Add the master branch and pull the latest changes into main
git remote set-branches origin master
git fetch origin master
git merge origin/master --no-ff -m "Sync master into main"
- name: Push changes to main branch
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: git push origin main
詳細解説:
このワークフローは「Auto Merge PR on Successful PR Creation」ワークフローが成功した後に、masterブランチの変更をmainブランチに反映させます。
-
トリガー設定:
- 「Auto Merge PR on Successful PR Creation」ワークフローが成功 (
completed&success) したときに自動的に開始。
- 「Auto Merge PR on Successful PR Creation」ワークフローが成功 (
-
ジョブ「sync-to-main」:
-
メインブランチのチェックアウト:
-
mainブランチの最新状態を取得。
-
-
Git設定:
- GitHub Actionsのボットユーザーを設定し、同期時のコミットに使用。
-
マスターブランチの最新変更をプル:
-
masterブランチから最新の変更をフェッチし、mainブランチにマージ。
-
-
メインブランチにプッシュ:
-
mainブランチに最新の変更をプッシュし、リモート上のmainをmasterと同期。
-
-
メインブランチのチェックアウト:
使い方とポイント
-
最新のコードを常に保持:
開発チームがmainブランチをベースに作業する場合、常に最新のmasterの内容が反映されるので安心。 -
手動作業の省略:
masterでの更新を意識せずとも、mainに自動で反映されるため、手間が省け、コミュニケーションミスも防げます。
自動で確実なブランチ同期を実現!
このワークフローで、masterとmainの両ブランチが同期状態に保たれるため、どちらのブランチも安心して利用できます。手動の同期作業を省略しつつ、常に一貫したコードベースを確保できるため、開発フローがスムーズになり、無駄な確認作業も減らせます。
Discussion