|
1 | | -name: 백엔드 CI 테스트 코드 자동화 # 워크플로우 이름 설정 |
| 1 | +name: 백엔드 CI 테스트 코드 자동화 |
2 | 2 |
|
3 | 3 | on: |
4 | 4 | push: |
5 | 5 | branches: |
6 | | - - main # main 브랜치에 푸시가 있을 때 |
7 | | - - develop # develop 브랜치에 푸시가 있을 때 |
8 | | - - feat/* # feat 브랜치에 푸시가 있을 때 |
9 | | - - test/* # test 브랜치에 푸시가 있을 때 |
10 | | - - build/* # build 브랜치에 푸시가 있을 때 |
11 | | - paths: 'backend/**' # backend 폴더 내 파일이 변경될 때만 실행 |
| 6 | + - develop |
| 7 | + - feat/* |
| 8 | + - build/* |
| 9 | + - refactor/* |
| 10 | + - Bug/* |
| 11 | + - fix/* |
| 12 | + - chore/* |
| 13 | + paths: 'backend/**' |
12 | 14 | pull_request: |
13 | 15 | branches: |
14 | | - - main # main 브랜치로 PR이 있을 때 |
15 | | - - develop # develop 브랜치로 PR이 있을 때 |
16 | | - paths: 'backend/**' # backend 폴더 내 파일이 변경될 때만 실행 |
| 16 | + - develop |
| 17 | + paths: 'backend/**' |
17 | 18 |
|
18 | 19 | defaults: |
19 | 20 | run: |
20 | | - working-directory: backend # 실행할 작업 디렉토리를 backend로 설정 |
| 21 | + working-directory: backend |
21 | 22 |
|
22 | 23 | jobs: |
23 | | - build: |
24 | | - runs-on: ubuntu-latest # 최신 Ubuntu 환경에서 실행 |
| 24 | + test: |
| 25 | + runs-on: ubuntu-latest |
25 | 26 |
|
26 | 27 | services: |
27 | 28 | redis: |
28 | | - image: redis:latest # Redis Docker 이미지 사용 |
| 29 | + image: redis:latest |
29 | 30 | ports: |
30 | | - - 6379:6379 # Redis 포트 매핑 |
31 | | - options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3 # Redis의 상태를 확인하는 옵션 |
| 31 | + - 6379:6379 |
| 32 | + options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3 |
32 | 33 |
|
33 | 34 | steps: |
34 | 35 | - name: 리포지토리를 가져옵니다 |
35 | | - uses: actions/checkout@v3 # GitHub 리포지토리를 체크아웃하는 액션 |
| 36 | + uses: actions/checkout@v3 |
36 | 37 |
|
37 | 38 | - name: JDK 21을 설치합니다 |
38 | | - uses: actions/setup-java@v3 # JDK 21을 설정하는 액션 |
| 39 | + uses: actions/setup-java@v3 |
39 | 40 | with: |
40 | | - java-version: '21' # JDK 21 버전을 설정 |
41 | | - distribution: 'temurin' # AdoptOpenJDK Temurin 배포판 사용 |
| 41 | + java-version: '21' |
| 42 | + distribution: 'temurin' |
42 | 43 |
|
43 | 44 | - name: Gradle 명령 실행을 위한 권한을 부여합니다 |
44 | | - run: chmod +x gradlew # Gradle 실행 파일(graderw)에 실행 권한을 부여 |
| 45 | + run: chmod +x gradlew |
45 | 46 |
|
46 | | - - name: Gradle build를 수행합니다 |
47 | | - run: ./gradlew build # Gradle을 이용해 빌드를 수행 |
| 47 | + - name: Gradle 테스트 수행 |
| 48 | + run: ./gradlew test |
48 | 49 |
|
49 | 50 | - name: 테스트 결과를 PR에 코멘트로 등록합니다 |
50 | | - uses: EnricoMi/publish-unit-test-result-action@v1 # 테스트 결과를 PR에 코멘트로 등록하는 액션 |
51 | | - if: always() # 항상 실행하도록 설정 (성공 여부에 관계없이) |
| 51 | + uses: EnricoMi/publish-unit-test-result-action@v1 |
| 52 | + if: always() |
52 | 53 | with: |
53 | | - files: '**/build/test-results/test/TEST-*.xml' # 테스트 결과 파일 경로를 지정 |
| 54 | + files: 'build/test-results/test/TEST-*.xml' |
54 | 55 |
|
55 | 56 | - name: 테스트 실패 시, 실패한 코드 라인에 Check 코멘트를 등록합니다 |
56 | | - uses: mikepenz/action-junit-report@v3 # 테스트 실패 시, 실패한 코드 라인에 체크 코멘트를 등록하는 액션 |
57 | | - if: failure() # 항상 실행하도록 설정 (성공 여부에 관계없이) |
| 57 | + uses: mikepenz/action-junit-report@v3 |
| 58 | + if: failure() |
58 | 59 | with: |
59 | | - report_paths: '**/build/test-results/test/TEST-*.xml' # 테스트 결과 파일 경로 |
60 | | - token: ${{ github.token }} # GitHub 인증 토큰을 사용하여 API 호출 |
| 60 | + report_paths: 'build/test-results/test/TEST-*.xml' |
| 61 | + token: ${{ github.token }} |
61 | 62 |
|
62 | 63 | - name: Discord Github Notification |
63 | 64 | |
64 | 65 | with: |
65 | | - discord-webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }} # secret key에 저장한 discord webhook url |
| 66 | + discord-webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }} |
0 commit comments