Skip to content

chore: 릴리즈 — 이미지 빌드 병렬화로 배포 단축 - #482

Merged
chanwoo7 merged 2 commits into
mainfrom
develop
Oct 3, 2026
Merged

chanwoo7 merged 2 commits into
mainfrom
develop

Conversation

@chanwoo7

@chanwoo7 chanwoo7 commented Oct 3, 2026

Copy link
Copy Markdown
Member

#481 릴리즈입니다. 배포 파이프라인만 바뀌고 앱 코드·마이그레이션·SDL 변화는 없습니다.

  • 이미지 빌드 병렬화(ci: 이미지 빌드를 CI의 병렬 job으로 옮겨 배포를 앞당김 #481)
    • CI 안에서 테스트(check)와 이미지 빌드(image)가 동시에 돌고, 둘 다 성공해야 Deploy가 시작됩니다. 배포까지 약 2분 짧아집니다.
    • build-image.yml은 삭제했고, Deploy는 CI의 workflow_run(이 레포 main push, 결론 success)을 받습니다.
    • 수동 Deploy(재배포·롤백)는 그 sha의 main push CI가 성공했는지 확인한 뒤에만 진행합니다.
  • 첫 적용 확인: 이 릴리즈의 머지 커밋이 새 흐름으로 배포되는 첫 커밋입니다. image job 푸시 → Deploy 발화 → api·worker 교체를 확인합니다.
  • 롤백: 새 흐름이 배포를 시작하지 못하면 Deploy를 수동 실행(빈 입력 = main 끝 sha)합니다. 수동 게이트가 CI 성공을 확인합니다.

머지 뒤 develop을 재생성합니다.

main push 뒤 CI(약 7분) → Build Image(약 2분) → Deploy 순차라 릴리즈마다 배포가 늦었다. 빌드는 테스트 결과가 필요 없으므로
check와 나란히 돌리고, Deploy는 CI 전체 결론을 기다린다.

- pr-check.yml(CI)에 image job 추가: PR은 arm64 빌드만, main push는 GHCR :<sha> 푸시. packages:write는 이 job에만
- build-image.yml 삭제, deploy.yml은 CI의 workflow_run(이 레포 main push, 결론 success = check·image 모두 성공)을 받는다
- 수동 Deploy(재배포·롤백)는 그 sha의 main push CI 성공을 gh api로 확인한 뒤에만 진행한다
  - 이미지가 check와 나란히 올라가 테스트에 실패한 커밋에도 생기므로, 예전처럼 "이미지가 있으면 CI 통과"에 기댈 수 없다
  - 실제 API로 확인: 성공한 main sha 2건 → 1, develop 전용·없는 sha → 0
- deploy-workflow spec을 새 구조로 갱신하고 수동 실행 게이트 반증을 추가(조건을 되돌리면 2건 실패 확인), README 2종 갱신
ci: 이미지 빌드를 CI의 병렬 job으로 옮겨 배포를 앞당김
@coderabbitai

coderabbitai Bot commented Oct 3, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 21 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: CaQuick/caquick-be/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: cd41c82d-00e0-48d4-96be-5eab2636d660
📥 Commits

Reviewing files that changed from the base of the PR and between e67adda and 877a697.

📒 Files selected for processing (7)
  • .github/workflows/build-image.yml
  • .github/workflows/deploy.yml
  • .github/workflows/pr-check.yml
  • README.en.md
  • README.md
  • scripts/deploy-workflow.spec.ts
  • scripts/pre-push-test-plan.spec.ts
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown

🧹 knip — dead-code 리포트

Unused exported types (1)
전체 리포트
Unused exported types (1)
RateLimitPolicy  type  src/global/rate-limit/index.ts:4:8

청소 후보(오탐 가능) · 기준 docs/guide/architecture-conventions.md

@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown

🩺 NestJS Doctor — 90/100 (Excellent)

진단 470건 (error 12).

Category error warning info
architecture 1 1 42
correctness 0 261 0
performance 0 30 28
schema 0 0 75
security 11 21 0
architecture / security 상위 항목
  • error architecture/architecture/no-manual-instantiation: Manual instantiation of 'OutboxRepository' detected. Use dependency injection instead.
  • info architecture/architecture/no-barrel-export-internals: Barrel file re-exports internal type 'IAuditLogRepository'.
  • warning security/security/no-exposed-env-vars: Direct 'process.env.NODE_ENV' access in 'AuthController'. Use ConfigService instead.
  • warning security/security/require-guards-on-endpoints: Endpoint 'start' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'callback' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'refresh' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'logout' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'sellerLogin' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'sellerRefresh' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'sellerLogout' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'devIssueToken' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'adminLogin' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'adminRefresh' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'adminLogout' has no @UseGuards() at class or method level.
  • warning security/security/require-guards-on-endpoints: Endpoint 'getJwks' has no @UseGuards() at class or method level.

오탐 포함 가능 · 기준 docs/guide/architecture-conventions.md

@codecov

codecov Bot commented Oct 3, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown

Coverage report

St.❔
Category Percentage Covered / Total
🟢 Statements 97.87% 10040/10258
🟢 Branches 92.27% 3772/4088
🟢 Functions 97.3% 2018/2074
🟢 Lines 98.48% 9135/9276

Test suite run success

3683 tests passing in 354 suites.

Report generated by 🧪jest coverage report action from 877a697

@chanwoo7
chanwoo7 merged commit 3483e34 into main Oct 3, 2026
17 checks passed
@chanwoo7
chanwoo7 deleted the develop branch October 3, 2026 16:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant