[INFRA-07] deploy-dev.yml — dev 자동 배포 워크플로
작업 내용 (설계 의도)
변경 사항
근거 TDD: ../TDD.md “시스템 역할 경계”, “상태 전이 표”. FR-3, NFR(10분). dev 브랜치 push 시 self-hosted runner가 이미지 빌드·배포한다.
- 트리거:
pushtodev브랜치. - job(self-hosted runner): checkout →
docker build -t sports-backend:latest -t sports-backend:${GITHUB_SHA}→scripts/deploy.sh dev ${GITHUB_SHA}→ health UP 확인. concurrency: deploy-dev그룹으로 중복 배포 직렬화.- 실패 시
source=deployment통지(⑩ 연동 지점 — 알림 스텝 자리 표시). - NFR: 머지→반영 10분 이내. Success Metrics 근거로 run 이력 기록.
롤백: 배포 실패 시 이전 이미지 유지(deploy.sh exit 1). 자동배포 중단은 워크플로 파일 revert.
의존
- INFRA-01 (Dockerfile), INFRA-03 (deploy.sh), INFRA-05 (dev override)
다이어그램
처리 흐름
sequenceDiagram participant GH as GitHub participant Wf as deploy-dev.yml participant Rn as self-hosted runner GH->>Wf: push dev Wf->>Rn: docker build + tag SHA Wf->>Rn: deploy.sh dev <sha> Rn-->>Wf: health UP → 성공 Wf-->>GH: run 이력 기록
테스트 케이스
actionlint가 error 0건이다devpush 트리거가 워크플로를 기동한다(다른 브랜치는 미기동)- 빌드→
deploy.sh dev <sha>호출 흐름이 정의된다 concurrency: deploy-dev로 중복 배포가 직렬화된다- 배포 실패 시
source=deployment통지 스텝이 존재한다 - health UP 확인 후에만 성공 처리한다