rebase fin #3
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: JaCoCo Test | |
on: | |
push: | |
branches: [ main, dev, 'feature/*' ] | |
pull_request: | |
branches: [ dev, main ] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '21' | |
distribution: 'temurin' | |
- name: Cache Gradle packages | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle- | |
- name: Grant execute permission for gradlew | |
run: chmod +x gradlew | |
- name: Build with Gradle | |
run: ./gradlew build -x test | |
- name: Run tests with environment variables | |
run: ./gradlew test --info --stacktrace | |
env: | |
SPRING_PROFILES_ACTIVE: test | |
SPRING_DATASOURCE_URL: jdbc:h2:mem:testdb;MODE=MySQL; | |
SPRING_DATASOURCE_DRIVER_CLASS_NAME: org.h2.Driver | |
SPRING_DATASOURCE_USERNAME: sa | |
SPRING_JPA_HIBERNATE_DDL_AUTO: create-drop | |
JWT_SECRET: testtesttesttesttesttesttesttest | |
JWT_ACCESS_TOKEN_EXPIRATION: 3600000 | |
JWT_REFRESH_TOKEN_EXPIRATION: 86400000 | |
SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_ID: test-client-id | |
SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_SECRET: test-client-secret | |
# JaCoCo 테스트 커버리지 보고서 생성 | |
- name: Generate JaCoCo Test Coverage Report | |
if: success() # 테스트가 성공했을 때만 실행 | |
run: ./gradlew jacocoTestReport | |
# 테스트 커버리지 검증 | |
- name: Verify Test Coverage | |
if: success() # 테스트가 성공했을 때만 실행 | |
run: ./gradlew jacocoTestCoverageVerification || true # 커버리지가 낮아도 빌드 실패하지 않음 | |
# 커버리지 보고서를 아티팩트로 업로드 | |
- name: Upload JaCoCo Test Coverage Report | |
if: success() # 테스트가 성공했을 때만 실행 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: jacoco-report | |
path: build/reports/jacoco/test/html/ | |
# 선택 사항: 커버리지 결과를 PR 코멘트에 추가 | |
- name: Comment Test Coverage on PR | |
if: github.event_name == 'pull_request' && success() | |
uses: madrapps/[email protected] | |
with: | |
paths: build/reports/jacoco/test/jacocoTestReport.xml | |
token: ${{ secrets.GITHUB_TOKEN }} | |
min-coverage-overall: 40 | |
min-coverage-changed-files: 60 | |
title: '📊 테스트 커버리지 리포트' |