diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml new file mode 100644 index 0000000..9a6187b --- /dev/null +++ b/.gitea/workflows/ci.yaml @@ -0,0 +1,41 @@ +name: CI + +# dev 브랜치 전용 CI (요청: dev 에만). 테스트는 인메모리 H2 라 서비스 컨테이너 불필요. +on: + push: + branches: [dev] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup JDK 17 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: '17' + # cache 제거: Gitea 캐시 서버 미연결 시 'Save cache' 후처리가 수 분 hang → '가짜 실패' 유발(sb_bt 와 동일) + + # clean build 는 test 태스크 포함(H2) — 단위테스트 실패 시 빌드 차단(게이트) + - name: Build & Test + run: | + chmod +x ./gradlew + ./gradlew --no-daemon clean build + + - name: Upload test report + if: always() + uses: actions/upload-artifact@v3 + with: + name: test-report + path: build/reports/tests/test + retention-days: 7 + + - name: Upload jar + uses: actions/upload-artifact@v3 + with: + name: app-jar + path: build/libs/*.jar + retention-days: 7 \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index b83562d..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,34 +0,0 @@ -# GitLab CI — dognation 백엔드 (Spring Boot 3 / Gradle / Java 17) -# dev 브랜치 푸시에서만 실행. 테스트는 인메모리 H2 라 외부 DB 불필요. -image: eclipse-temurin:17-jdk - -variables: - GRADLE_USER_HOME: "$CI_PROJECT_DIR/.gradle" - GRADLE_OPTS: "-Dorg.gradle.daemon=false" - -# Gradle 래퍼/의존성 캐시로 재빌드 가속. -cache: - key: "$CI_COMMIT_REF_SLUG" - paths: - - .gradle/wrapper - - .gradle/caches - -stages: - - build - -build-test: - stage: build - rules: - - if: '$CI_COMMIT_BRANCH == "dev"' - before_script: - - chmod +x ./gradlew - script: - # build = compile + test(H2) + assemble(jar) - - ./gradlew --no-daemon build - artifacts: - when: always - paths: - - build/libs/*.jar - reports: - junit: build/test-results/test/TEST-*.xml - expire_in: 1 week \ No newline at end of file