최근에 시작한 개인 토이 프로젝트를 진행하다가 문득 develop 브랜치에 push 를 하면, 자동으로 main 브랜치에 merge 및 push 를 해주는 자동화 시스템을 구축하면 어떨까 하는 생각이 들었다.
(신규 기능 및 이슈 수정은 develop 으로부터 분기한 후 작업하고 다시 Pull&Request 를 거친 후 develop 브랜치로 merge 하고 있다. )
git Actions 으로 main 브랜치에 자동 merge 하기
.github/workflows/merge.yml
name: Merge Dev to Main
on: # 발생 이벤트 타입
push: # push 이벤트 발생 시
branches: # 타겟 브랜치
- dev
jobs: # 실행 작업 코드
merge: # merge 실행
runs-on: ubuntu-latest
steps:
- name: Checkout main branch # 'main' 브랜치로 branch checkout
uses: actions/checkout@v2
with:
ref: 'main'
fetch-depth: '0'
- name: Configure Git # commit을 위한 git config 설정
run: |
git config user.name JinWoo_Lee
git config user.email dlwlsdn201@naver.com
- name: Merge dev branch # main 브랜치에서 dev 브랜치를 merge
run: |
git merge origin/dev --no-edit
- name: Push changes to main branch # merge 내용들을 main 브랜치로 최종 push
uses: ad-m/github-push-action@master
with:
branch: main
github_token: ${{ secrets.GITHUB_TOKEN }}
충돌나면 어떻게 하나요? 충돌난채로 실서버에 올라가면 에러나지 않나요?