From 65860f217a60a608a43a098ebb7313688b0c1bcf Mon Sep 17 00:00:00 2001 From: yuyeol3 Date: Mon, 26 Oct 2026 15:15:11 +0900 Subject: [PATCH 1/2] =?UTF-8?q?chore=20:=20fin-be=20=EC=84=9C=EB=B8=8C?= =?UTF-8?q?=EB=AA=A8=EB=93=88=EC=9D=84=20Fin-BE=20main(#35,=20V8=20?= =?UTF-8?q?=ED=8C=8C=ED=82=B9=20=EC=B9=B4=EB=93=9C=20=EC=BB=AC=EB=9F=BC)?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EA=B0=B1=EC=8B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 수집기 엔티티는 #16에서 V8 컬럼을 쓰는데 포인터가 #32에 머물러 테스트 스키마 검증이 깨졌다 --- fin-be | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fin-be b/fin-be index 9e13118..e30a018 160000 --- a/fin-be +++ b/fin-be @@ -1 +1 @@ -Subproject commit 9e13118c05fc717bae689f0844f041e3e4d599c8 +Subproject commit e30a018b5d3ad7b0483f751f2fee8f100536f2e4 From 6299989b07198fdfe9ad489c6e612d2e52444eb8 Mon Sep 17 00:00:00 2001 From: yuyeol3 Date: Mon, 26 Oct 2026 15:15:11 +0900 Subject: [PATCH 2/2] =?UTF-8?q?chore=20:=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20C?= =?UTF-8?q?I=20=EC=B6=94=EA=B0=80=EC=99=80=20=EB=B0=B0=EC=B9=98=20?= =?UTF-8?q?=EC=8B=A4=ED=8C=A8=20=EC=8B=9C=20=EC=A2=85=EB=A3=8C=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=A0=84=EB=8B=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ci.yml: PR마다 서브모듈 포함 ./gradlew test. 수집 워크플로가 workflow_call로 재사용한다 - main: SpringApplication.exit로 JobExecutionExitCodeGenerator의 종료 코드를 내보낸다(지금은 FAILED여도 0) --- .github/workflows/ci.yml | 38 +++++++++++++++++++ .../apicollector/ApiCollectorApplication.java | 3 +- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..c284cb9 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,38 @@ +name: Collector CI + +on: + pull_request: + # 수집 워크플로가 수집 전에 같은 ref로 호출한다. 테스트가 깨진 코드로는 DB에 쓰지 않기 위해서다. + workflow_call: + inputs: + ref: + description: "테스트할 브랜치. 비우면 이벤트의 ref" + type: string + default: "" + +permissions: + contents: read + +jobs: + test: + name: Tests + runs-on: ubuntu-latest + steps: + - name: Checkout sources + uses: actions/checkout@v6 + with: + ref: ${{ inputs.ref }} + # 테스트용 Flyway가 fin-be 서브모듈의 마이그레이션 SQL로 스키마를 만든다. + submodules: true + + - name: Set up Java 21 + uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: "21" + + - name: Set up Gradle + uses: gradle/actions/setup-gradle@v6 + + - name: Run tests + run: bash ./gradlew test diff --git a/src/main/java/apptive/fin/apicollector/ApiCollectorApplication.java b/src/main/java/apptive/fin/apicollector/ApiCollectorApplication.java index dac3aef..fbe4bd0 100644 --- a/src/main/java/apptive/fin/apicollector/ApiCollectorApplication.java +++ b/src/main/java/apptive/fin/apicollector/ApiCollectorApplication.java @@ -11,7 +11,8 @@ public class ApiCollectorApplication { public static void main(String[] args) { - SpringApplication.run(ApiCollectorApplication.class, args); + // 배치가 FAILED로 끝나면 0이 아닌 종료 코드를 내도록 한다(JobExecutionExitCodeGenerator). 수집 워크플로가 실패를 감지하는 근거. + System.exit(SpringApplication.exit(SpringApplication.run(ApiCollectorApplication.class, args))); } }