Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/prod-cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@
name: RUNNECT-PROD-CD

# 해당 workflow가 언제 실행될 것인지에 대한 트리거를 지정
# push시에 실행
# v로 시작하는 태그가 push될 때만 실행 (예: v1.3.0)
# main push마다 자동으로 상용까지 나가지 않도록, 상용 배포는 태그로 명시적으로 트리거한다.
# staging(Render)은 main push에 그대로 자동 배포된다 — staging에서 먼저 확인 후 태그를 찍는 흐름.
on:
push:
branches: [ main ] # main branch로 push 될 때 실행됩니다.
tags: [ 'v*' ]

env:
S3_BUCKET_NAME: runnect-prod-bucket-604764467555-ap-northeast-2-an
Expand Down
13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,18 @@
- 미완성 기능은 브랜치를 오래 살려두지 말고, feature flag로 감싸 `main`에 빠르게 합친다
- 리뷰 완료 후 squash merge, 병합된 branch는 삭제

과거에는 `dev`/`main` 두 개의 장수 branch를 cherry-pick으로 동기화하는 방식이었으나, 두 branch가 내용상 계속 어긋나는 문제(cherry-pick hell)가 반복되어 폐기했다. staging 배포도 `main` push를 기준으로 트리거된다.
과거에는 `dev`/`main` 두 개의 장수 branch를 cherry-pick으로 동기화하는 방식이었으나, 두 branch가 내용상 계속 어긋나는 문제(cherry-pick hell)가 반복되어 폐기했다.

### 🚀 배포 전략 (Continuous Delivery)

`main`은 항상 배포 가능한 상태를 유지하되, staging과 상용의 배포 트리거는 분리했다 — merge 즉시 상용까지 나가면 검증 없이 바로 노출되는 문제가 있어서다.

| 환경 | 트리거 | 방식 |
| --- | --- | --- |
| staging (Render) | `main` push | 자동 배포 |
| 상용 (AWS CodeDeploy) | `v*` 형식의 git tag push | 수동 승격 |

merge → staging에서 자동 확인 → 문제 없으면 `git tag v1.x.x && git push origin v1.x.x`로 상용 배포. 버전은 느슨한 semver(기능 추가 minor, 버그 수정 patch)를 따른다.

### 🚩 Feature Flag

Expand Down
Loading