#️⃣ 요청 유형
#️⃣ 어떤 기능인가요?
현재 develop 브랜치의 변경사항이 자동으로 프로덕션에 배포되는 구조를 main 브랜치 기준으로 변경합니다.
develop은 기능 통합 및 검증 브랜치로 사용하고, 검증된 변경사항을 main에 머지했을 때만 GitHub Actions를 통해 Amazon ECR 및 EC2 운영 환경에 배포되도록 구성합니다.
운영 배포가 성공한 커밋은 Git 태그와 GitHub Release로 기록합니다. Docker 이미지는 기존 Amazon ECR에서 관리하므로 GitHub Packages는 사용하지 않습니다.
#️⃣ 이 기능이 필요한 이유는 무엇인가요?
현재는 develop에 PR이 머지될 때마다 프로덕션 배포가 실행되어, 기능 통합과 운영 배포 시점을 분리하기 어렵습니다.
프로덕션 배포 기준을 main으로 변경하면 다음과 같은 효과를 얻을 수 있습니다.
- 개발 통합과 운영 배포 시점 분리
- 검증된 코드만 운영 환경에 배포
- 운영 버전 및 배포 커밋 추적
- Git 태그와 Release를 통한 변경 이력 관리
- 특정 운영 버전의 ECR 이미지 및 커밋 식별
main 직접 변경 및 실수로 인한 배포 방지
#️⃣ 작업 상세 내용
#️⃣ 요청 유형
#️⃣ 어떤 기능인가요?
현재
develop브랜치의 변경사항이 자동으로 프로덕션에 배포되는 구조를main브랜치 기준으로 변경합니다.develop은 기능 통합 및 검증 브랜치로 사용하고, 검증된 변경사항을main에 머지했을 때만 GitHub Actions를 통해 Amazon ECR 및 EC2 운영 환경에 배포되도록 구성합니다.운영 배포가 성공한 커밋은 Git 태그와 GitHub Release로 기록합니다. Docker 이미지는 기존 Amazon ECR에서 관리하므로 GitHub Packages는 사용하지 않습니다.
#️⃣ 이 기능이 필요한 이유는 무엇인가요?
현재는
develop에 PR이 머지될 때마다 프로덕션 배포가 실행되어, 기능 통합과 운영 배포 시점을 분리하기 어렵습니다.프로덕션 배포 기준을
main으로 변경하면 다음과 같은 효과를 얻을 수 있습니다.main직접 변경 및 실수로 인한 배포 방지#️⃣ 작업 상세 내용
develop의 최신 변경사항을main에 반영할 PR 준비develop에서main으로 변경workflow_dispatch수동 배포 기능 유지develop로 제한된 경우main기준으로 변경main브랜치 보호 Ruleset 생성main직접 push 및 force push 제한main머지 시 Pull Request와 승인 요구productionEnvironment 도입 여부 검토develop머지 시 프로덕션 배포가 실행되지 않는지 확인main머지 시 프로덕션 배포가 한 번 실행되는지 확인main머지 커밋 SHA와 일치하는지 확인