Skip to content

Feat : Chapter 8. API & Swagger & Annotation #35

Feat : Chapter 8. API & Swagger & Annotation

Feat : Chapter 8. API & Swagger & Annotation #35

Workflow file for this run

name: Spring Boot CI with gradle
on:
push:
branches: [ "main", "develop", "feat/**", "feature/**" ]
paths:
- "build.gradle*"
- "settings.gradle*"
- "gradlew"
- "gradle/**"
- "src/**"
- ".github/workflows/**"
pull_request:
branches: [ "main", "develop" ]
paths:
- "build.gradle*"
- "settings.gradle*"
- "gradlew"
- "gradle/**"
- "src/**"
- ".github/workflows/**"
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-test:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
# 1) 체크아웃
- name: Checkout
uses: actions/checkout@v4
# 2) JDK 17
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
# 3) Gradle 캐시(빌드 속도 개선)
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
# 4) gradlew 실행 권한
- name: Grant execute permission for gradlew
run: chmod +x ./gradlew
# 5) 빌드(테스트 포함)
# 테스트는 src/test/resources/application.yml(H2) 설정으로 자동 실행됨
- name: Build with Gradle
run: ./gradlew clean build --no-daemon
# 6) 테스트 리포트 업로드
- name: Upload Test Reports
if: always()
uses: actions/upload-artifact@v4
with:
name: junit-reports
path: |
**/build/test-results/test
**/build/reports/tests/test
# 7) 실패 요약
- name: Print failed tests (if any)
if: failure()
shell: bash
run: |
echo "---- Failed Test Classes (if any) ----"
if ls **/build/test-results/test/*.xml >/dev/null 2>&1; then
grep -Hn "failure message=" -R **/build/test-results/test/*.xml || true
else
echo "No test result XML files found."
fi