본문으로 건너뛰기

CI/CD 파이프라인

브랜치 전략

main ───────────────────── 운영 배포 (prod)
└── develop ───────────── 통합 배포 (dev)
├── feat/#번호 ── 기능 개발
└── fix/#번호 ── 버그 수정
  • feat/*develop: 리뷰 1명 이상 승인 후 머지
  • developmain: 릴리스 단위로 PR 생성

워크플로우 목록

파일트리거역할
deploy.ymlmain push (Backend/** 변경)백엔드 배포
frontend-deploy.ymldevelop push (Frontend/** 변경)프론트엔드 → Cloudflare Workers
docs-deploy.ymldevelop push (Frontend/apps/docs/** 변경)문서 → Cloudflare Pages
update-api-client.ymldevelop push (openapi.yaml 변경)Zod 클라이언트 자동 생성
frontend-e2e.ymlPR · main pushPlaywright E2E 테스트
chromatic.ymlPR · main pushStorybook Chromatic 퍼블리시

백엔드 배포 흐름

Backend/ 하위 파일이 변경된 커밋이 main에 push되면 자동 실행됩니다.

main 브랜치 push

├─ 1. Docker 멀티스테이지 빌드
│ (Java 17 + Gradle bootJar, 의존성 레이어 캐시)

├─ 2. DockerHub에 이미지 push

└─ 3. EC2 SSH 접속 → 배포
├── docker-compose pull (최신 이미지 수신)
├── docker-compose up -d --force-recreate
└── docker image prune (이전 이미지 정리)

OpenAPI 자동 동기화 흐름

openapi.yaml이 변경되면 프론트엔드 타입/클라이언트 코드를 자동으로 갱신합니다.

develop push (openapi.yaml 변경)

├─ 1. 백엔드 openapi.yaml 경로 자동 탐색
├─ 2. 이전 버전과 비교 → 변경된 API 목록 요약
├─ 3. openapi-ts로 Zod 클라이언트 코드 생성
└─ 4. 자동 PR 생성 → 리뷰 후 머지