📑
マスターからメインへの自動同期!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