🌲
mainブランチマージしたら他のブランチにもマージPRを作成するGitHub Actions
前提の話
- ブランチ運用の話
- CI / CD周り
- ブランチ名がそのままリモートの開発環境へデプロイするような運用
- main: 本番環境 一番StableでLatestなブランチ
- その他の環境
- staging: ステージング環境
- ...etc環境
要するにmain更新されたら存在するリモートの環境分の更新作業がめんどくさい
- ブランチ名がそのままリモートの開発環境へデプロイするような運用
- CI / CD周り
図にするとこんな感じ
サンプルプロジェクト
mainに直でGitHub ActionsのYAMLをコミット&プッシュしたのでPRに各ブランチにYAMLの差分を取り込むようなPRが作成されている
.github/workflows/main_release_marge.yml
GitHub ActionsのWorkflowの内容として下記の詳細に記載
.github/workflows/main_release_marge.yml
name: main branch Release Marge
on:
push:
branches: [main]
# https://qiita.com/Hiroki_lzh/items/3607072052a2de7e8378#%E3%81%BE%E3%81%9A%E3%81%AFactions%E5%85%A8%E4%BD%93%E3%81%A7%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E6%A8%A9%E9%99%90%E3%82%92%E3%82%82%E3%82%89%E3%81%88
permissions:
contents: write
pull-requests: write
env:
GITHUB_MAIL: 41898282+github-actions[bot]@users.noreply.github.com
GITHUB_NAME: github-actions[bot]
jobs:
release-merge-pr:
runs-on: ubuntu-latest
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v4
- name: Create merge PR for dev1
run: |
git checkout -b main_to_dev1
git push --set-upstream origin main_to_dev1
gh pr create \
-B dev1 \
-t "[Release Marge] main -> dev1" \
-b "mainがリリースされたので.github/workflows/main_release_marge.yml経由にマージのPRが作成されました"
continue-on-error: true
- name: Create merge PR for dev2
run: |
git checkout -b main_to_dev2
git push --set-upstream origin main_to_dev2
gh pr create \
-B dev2 \
-t "[Release Marge] main -> dev2" \
-b "mainがリリースされたので.github/workflows/main_release_marge.yml経由にマージのPRが作成されました"
continue-on-error: true
注意点
permissions:
contents: write
pull-requests: write
コメントにあるリンクで
にもあるがActionsに読み書きの権限を与える必要があるので実行して403が出たらGitHubのOrganizationの管理者に追加するようにお願いする
GitHubで編集を提案

ちょっと株式会社(chot-inc.com)のエンジニアブログです。 フロントエンドエンジニア募集中! カジュアル面接申し込みはこちらから chot-inc.com/recruit/iuj62owig
Discussion