Skip to content

[FEATURE] main 기준 프로덕션 배포 및 릴리즈 관리 체계 전환 #79

Description

@Minter-v1

#️⃣ 요청 유형

  • 새로운 기능 추가
  • 기존 기능 개선
  • 성능 개선

#️⃣ 어떤 기능인가요?

현재 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에 반영할 PR 준비
  • 프로덕션 배포 워크플로 트리거를 develop에서 main으로 변경
  • workflow_dispatch 수동 배포 기능 유지
  • AWS GitHub Actions OIDC 역할의 신뢰 정책 확인
  • OIDC 신뢰 정책이 develop로 제한된 경우 main 기준으로 변경
  • GitHub main 브랜치 보호 Ruleset 생성
  • main 직접 push 및 force push 제한
  • main 머지 시 Pull Request와 승인 요구
  • GitHub production Environment 도입 여부 검토
  • develop 머지 시 프로덕션 배포가 실행되지 않는지 확인
  • main 머지 시 프로덕션 배포가 한 번 실행되는지 확인
  • ECR 이미지 태그가 main 머지 커밋 SHA와 일치하는지 확인
  • EC2 운영 컨테이너가 해당 이미지로 교체되는지 확인
  • 첫 운영 배포 성공 후 Git 태그 및 GitHub Release 생성
  • 이후 운영 배포에 적용할 버전 규칙 정의
  • GitHub Packages를 사용하지 않고 Amazon ECR을 이미지 저장소로 유지

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions