Skip to content

Commit 1276831

Browse files
committed
[FEAT]: Backend CI 추가
1 parent b6f50f8 commit 1276831

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

.github/workflows/Backend-CI.yml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: Backend PR CI
2+
3+
env:
4+
BACKEND_DIR: back
5+
6+
on:
7+
pull_request:
8+
branches:
9+
# 개발 초기 - main으로의 PR 시 검사
10+
# 향후 dev로의 PR / dev -> main PR 시에도 검사
11+
- main
12+
- dev
13+
types: [
14+
# PR 생성 및 다시 오픈 시
15+
opened, reopened,
16+
# 최초 PR 제출 이후 작업 브랜치 push 발생 시
17+
synchronize,
18+
# pr 제목, 내용 수정 등 일체의 수정이 발생했을 때 트리거 되는데요.
19+
# 타켓 브랜치를 잘못 설정했을 때의 상황을 상정하여 설정입니다.
20+
edited
21+
]
22+
paths:
23+
[
24+
".github/workflows/**",
25+
"back/build.gradle.kts",
26+
"back/settings.gradle.kts",
27+
"back/src/**",
28+
"back/Dockerfile",
29+
]
30+
31+
# 동일 브랜치에서 연속 실행 방지
32+
concurrency:
33+
group: ${{ github.workflow}}-${{ github.ref }}-${{ github.event_name }}
34+
cancel-in-progress: true
35+
36+
permissions:
37+
contents: read
38+
# mikepenz/action-junit-report 구동을 위한 최소 조건
39+
checks: write
40+
41+
jobs:
42+
backend-ci:
43+
# 상단의 types 주석을 참고
44+
if: github.event.action != 'edited' || github.event.changes.base.ref
45+
name: Backend CI
46+
runs-on: ubuntu-latest
47+
defaults:
48+
run:
49+
working-directory: ./${{ env.BACKEND_DIR }}
50+
steps:
51+
# 소스 코드 가져오기
52+
- name: Checkout repository
53+
uses: actions/checkout@v4
54+
55+
# JDK 설정
56+
# graalvm 21 사용
57+
- name: Set up JDK 21
58+
uses: actions/setup-java@v5
59+
with:
60+
distribution: "graalvm"
61+
java-version: "21"
62+
cache: "gradle"
63+
64+
# Gradle 캐싱
65+
- name: Set up Gradle
66+
uses: gradle/actions/setup-gradle@v4
67+
68+
# Gradle 실행 권한 부여
69+
- name: Grant execute permission for gradlew
70+
run: chmod +x gradlew
71+
72+
# Secret으로 부터 .env 생성
73+
- name: Generate .env
74+
run: |
75+
printf "%s" "${{ secrets.DOT_ENV }}" > .env
76+
77+
# Gradle 빌드 및 테스트 진행
78+
- name: Execute Build and Tests
79+
run: ./gradlew clean build test --no-daemon --warning-mode=all
80+
81+
# 테스트 실행 결과 로깅 Action
82+
- name: Generate JUnit Test Report
83+
uses: mikepenz/action-junit-report@v5
84+
if: success() || failure() # 성공 여부 상관없이 실행
85+
with:
86+
report_paths: "**/build/test-results/test/TEST-*.xml"

0 commit comments

Comments
 (0)