wealth-forge CI/CD 파이프라인

wealth-forge CI/CD 파이프라인 A workflow diagram generated by Archify. 01 / GitHub (저장소 · Actions) 02 / CD · 게이트와 이미지 03 / prod 배포 (GitOps · 미니PC k3s) 04 / dev 배포 (윈도우 WSL2 k3s) EX / 실패 처리 · 알림 빌드 · 검증 게이트 · 이미지 발행 환경별 전달 push · PR · main · develop · GitHub (저장소 · Actions) › 빌드 · 검증 · 문서·메모리 제외 push · PR main · develop 문서·메모리 제외 CI build · gradlew :apps:*:build · GitHub (저장소 · Actions) › 빌드 · 검증 · JDK 21 CI build gradlew :apps:*:build JDK 21 CD 게이트 · CI 성공 후 진행 · CD · 게이트와 이미지 › 게이트 · 이미지 발행 · workflow_run CD 게이트 CI 성공 후 진행 workflow_run 이미지 푸시 · Buildx → GHCR · CD · 게이트와 이미지 › 게이트 · 이미지 발행 · amd64+arm64 이미지 푸시 Buildx → GHCR amd64+arm64 dev 적용 · apply -k · set image · dev 배포 (윈도우 WSL2 k3s) › 환경별 전달 · self-hosted dev 적용 apply -k · set image self-hosted 헬스체크 · rollout · NodePort · dev 배포 (윈도우 WSL2 k3s) › 환경별 전달 · 180s 헬스체크 rollout · NodePort 180s digest 커밋 · → main push · prod 배포 (GitOps · 미니PC k3s) › 환경별 전달 · [skip ci] digest 커밋 → main push [skip ci] ArgoCD 동기화 · selfHeal · prune · prod 배포 (GitOps · 미니PC k3s) › 환경별 전달 · main watch ArgoCD 동기화 selfHeal · prune main watch 자동 롤백 · rollout undo · 실패 처리 · 알림 › 환경별 전달 자동 롤백 rollout undo Telegram 알림 · _notify.yml · 실패 처리 · 알림 › 환경별 전달 Telegram 알림 _notify.yml 트리거 main develop 실패 시 이전 리비전 결과 통보 Legend User UI Agent logic Policy Tool action Cloud service External system

트리거와 게이트

  • • push·PR은 main·develop·feature/**, 문서·메모리 경로는 paths-ignore
  • • CD는 workflow_run으로 CI 성공(event=push)일 때만 진행
  • • 환경별 킬스위치: DEPLOY_DEV_ENABLED · DEPLOY_PROD_ENABLED

이미지

  • • 앱 3개 각각 별도 Dockerfile, amd64+arm64 동시 빌드
  • • 태그는 브랜치 · sha-7자 · main이면 latest
  • • 배포는 태그가 아닌 digest 핀, 빌드 캐시는 type=gha

안전장치

  • • dev는 헬스체크 실패 시 rollout undo로 자동 롤백
  • • prod는 kubectl 직접 배포 없음 — main 커밋을 ArgoCD가 당겨감
  • • prod 롤백은 digest 커밋 git revert, 커밋에 [skip ci]로 재트리거 차단
  • • CI·빌드 실패·dev 배포·prod 커밋 모두 같은 _notify.yml로 알림