Skip to content

Commit a8a3e33

Browse files
authored
[FEAT]: Backend CI 추가 (#8)
* [FEAT]: Backend CI 추가 * [COMMENT]: 주석 추가 * [FIX]: edited 제거 및 좀 더 명확한 그룹명으로 나타나도록 수정
1 parent b6f50f8 commit a8a3e33

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed

.github/workflows/Backend-CI.yml

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
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+
]
19+
20+
# 대상 경로의 수정 사항이 있을 때 동작
21+
paths:
22+
[
23+
".github/workflows/**",
24+
"back/build.gradle.kts",
25+
"back/settings.gradle.kts",
26+
"back/src/**",
27+
"back/Dockerfile",
28+
]
29+
30+
# 동일 브랜치에서 연속 실행 방지
31+
concurrency:
32+
group: backend-ci-${{ github.ref }}-${{ github.event.pull_request.number }}
33+
cancel-in-progress: true
34+
35+
permissions:
36+
contents: read
37+
# mikepenz/action-junit-report 구동을 위한 최소 조건
38+
checks: write
39+
40+
jobs:
41+
backend-ci:
42+
# 상단의 types 주석을 참고
43+
name: Backend CI
44+
runs-on: ubuntu-latest
45+
46+
# 작업 디렉토리
47+
defaults:
48+
run:
49+
working-directory: ./${{ env.BACKEND_DIR }}
50+
51+
steps:
52+
# 소스 코드 가져오기
53+
- name: Checkout repository
54+
uses: actions/checkout@v4
55+
56+
# JDK 설정
57+
# graalvm 21 사용
58+
- name: Set up JDK 21
59+
uses: actions/setup-java@v5
60+
with:
61+
distribution: "graalvm"
62+
java-version: "21"
63+
cache: "gradle"
64+
65+
# Gradle 캐싱
66+
- name: Set up Gradle
67+
uses: gradle/actions/setup-gradle@v4
68+
69+
# Gradle 실행 권한 부여
70+
- name: Grant execute permission for gradlew
71+
run: chmod +x gradlew
72+
73+
# Secret으로 부터 .env 생성
74+
- name: Generate .env
75+
run: |
76+
printf "%s" "${{ secrets.DOT_ENV }}" > .env
77+
78+
# Gradle 빌드 및 테스트 진행
79+
- name: Execute Build and Tests
80+
run: ./gradlew clean build test --no-daemon --warning-mode=all
81+
82+
# 테스트 실행 결과 로깅 Action
83+
- name: Generate JUnit Test Report
84+
uses: mikepenz/action-junit-report@v5
85+
if: success() || failure() # 성공 여부 상관없이 실행
86+
with:
87+
report_paths: "**/build/test-results/test/TEST-*.xml"

0 commit comments

Comments
 (0)