From 6853cba73fc7a7aba52b530b5e6c71e2db8138e9 Mon Sep 17 00:00:00 2001 From: juhanByeon Date: Wed, 6 May 2026 11:00:35 +0900 Subject: [PATCH] =?UTF-8?q?#=20ci/docs:=20GitHub=20Actions=20CI=20?= =?UTF-8?q?=EC=9B=8C=ED=81=AC=ED=94=8C=EB=A1=9C=EC=9A=B0=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EB=B0=8F=20README=20=EB=B0=B0=EC=A7=80/=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=95=88=EB=82=B4=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Summary GitHub Actions 기반 CI를 추가해 `main` push/PR 시 `./gradlew build`를 자동 실행하도록 구성했습니다. 또한 README에 CI 배지와 테스트 실행 안내를 추가해 로컬/원격 검증 경로를 명확히 했습니다. --- ### Changes #### 1. CI 워크플로우 추가 - `.github/workflows/ci.yml` (신규) - 트리거: - `push` to `main` - `pull_request` to `main` - 실행 환경: - `ubuntu-latest` - `JDK 21 (temurin)` - `gradle/actions/setup-gradle@v4` - 빌드: - `./gradlew --no-daemon build` - 실패 시 테스트 리포트 아티팩트 업로드: - `**/build/reports/tests/` - `**/build/test-results/` #### 2. README 업데이트 - `README.md` - GitHub Actions CI 배지 추가 - `## 테스트` 섹션 추가 (`./gradlew build`) - Testcontainers(MySQL 8 + Redis 7) 및 Docker 필요 사항 명시 - CI에서도 동일한 Testcontainers 기반 검증 수행 내용 추가 --- ### Checklist - [x] GitHub Actions CI 워크플로우 추가 - [x] main push/PR 자동 빌드 설정 - [x] 실패 시 테스트 리포트 업로드 설정 - [x] README CI 배지 추가 - [x] README 테스트 실행 가이드 추가 --- ### How to Test ```bash # 로컬 빌드/테스트 ./gradlew build • PR 생성 후 GitHub Actions CI 워크플로우가 자동 실행되는지 확인 • 실패 케이스에서 test-reports 아티팩트 업로드되는지 확인 --- .github/workflows/ci.yml | 36 ++++++++++++++++++++++++++++++++++++ README.md | 11 +++++++++++ 2 files changed, 47 insertions(+) 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..9c3f8b0 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,36 @@ +name: CI + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build: + runs-on: ubuntu-latest + timeout-minutes: 25 + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 21 + + - name: Set up Gradle (with build cache) + uses: gradle/actions/setup-gradle@v4 + + - name: Build + run all tests + run: ./gradlew --no-daemon build + + - name: Upload test reports on failure + if: failure() + uses: actions/upload-artifact@v4 + with: + name: test-reports + path: | + **/build/reports/tests/ + **/build/test-results/ + retention-days: 7 diff --git a/README.md b/README.md index 00eb60b..c903cef 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # OpenRemit +[![CI](https://github.com/NewEgoDoc/OpenRemit/actions/workflows/ci.yml/badge.svg)](https://github.com/NewEgoDoc/OpenRemit/actions/workflows/ci.yml) + 송금 + 내부 결제 게이트웨이 백엔드. ## 실행 @@ -23,3 +25,12 @@ docker compose up -d ## 스택 Kotlin 2.2 / Spring Boot 4.0 / Java 21 · MySQL 8 + Flyway · Redis · Kafka · Resilience4j · Testcontainers + Kotest + +## 테스트 + +```bash +./gradlew build +``` + +통합 테스트는 Testcontainers로 MySQL 8 + Redis 7을 자동 기동합니다 (Docker 필요). +GitHub Actions CI에서도 동일한 Testcontainers 기반으로 매 커밋 검증.