Skip to content

chore : 테스트 CI 추가와 배치 실패 시 종료 코드 전달 - #17

Merged
zwo-n merged 2 commits into
mainfrom
yuyeol3/chore/ci
Oct 29, 2026
Merged

zwo-n merged 2 commits into
mainfrom
yuyeol3/chore/ci

Conversation

@yuyeol3

@yuyeol3 yuyeol3 commented Oct 26, 2026

Copy link
Copy Markdown
Collaborator

변경점 👍

이 레포에는 CI가 없어서 테스트 CI를 추가했습니다. 이어서 올릴 수집 워크플로(Actions에서 2주 간격으로 dev DB 수집)의 준비 단계입니다.

  • ci.yml (신규): PR마다 fin-be 서브모듈을 포함해 체크아웃하고 ./gradlew test를 실행합니다.
    • workflow_call로도 호출할 수 있게 했습니다. 수집 워크플로가 수집 전에 같은 브랜치로 이 CI를 돌리고, 통과해야만 DB에 씁니다.
  • ApiCollectorApplication.main: System.exit(SpringApplication.exit(...))로 바꿨습니다.
    • 지금은 배치가 FAILED로 끝나도 프로세스 종료 코드가 0이라 Actions에서 실패로 잡히지 않습니다.
    • Spring Boot가 등록하는 JobExecutionExitCodeGenerator가 FAILED면 0이 아닌 코드를 돌려줍니다.
  • fin-be 서브모듈 포인터 갱신 (9e13118 → e30a018, Fin-BE #35)
    • #16에서 엔티티가 V8 컬럼(파킹 카드)을 쓰기 시작했는데 포인터가 #32에 머물러 있었습니다. 그래서 main에서 ./gradlew test를 돌리면 스키마 검증(ddl-auto: validate)이 깨집니다.
    • CLAUDE.md의 "스키마 변경 확정 시 포인터 갱신" 절차대로 Fin-BE main 커밋으로 올렸습니다.

테스트 💻

  • 로컬 ./gradlew test: 갱신 전 포인터에서는 스키마 검증 실패, 갱신 후 전체 통과
  • 종료 코드: 임시 Postgres 컨테이너에 Fin-BE 마이그레이션을 적용하고, FSS 주소를 일부러 틀리게 줘서 job을 FAILED로 만들어 비교
    • 변경 전: status: [FAILED], 종료 코드 0
    • 변경 후: status: [FAILED], 종료 코드 5
  • 이 PR에서 ci.yml이 처음 실행됩니다.

비고

머지해도 서버나 DB에는 영향이 없습니다.

수집기 엔티티는 #16에서 V8 컬럼을 쓰는데 포인터가 #32에 머물러 테스트 스키마 검증이 깨졌다
- ci.yml: PR마다 서브모듈 포함 ./gradlew test. 수집 워크플로가 workflow_call로 재사용한다
- main: SpringApplication.exit로 JobExecutionExitCodeGenerator의 종료 코드를 내보낸다(지금은 FAILED여도 0)
@zwo-n

zwo-n commented Oct 29, 2026

Copy link
Copy Markdown

수고하셨습니다!

@zwo-n
zwo-n merged commit 2c5f82c into main Oct 29, 2026
1 check passed
@zwo-n
zwo-n deleted the yuyeol3/chore/ci branch October 29, 2026 00:00
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.

2 participants