From 5fac8854025b1378c8457be7fd6ca99058ba7c64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9A=B0=EA=B0=80?= Date: Thu, 27 Jul 2023 12:31:16 +0900 Subject: [PATCH] =?UTF-8?q?[BE]=20chore:=20test=20github=20actions=20workf?= =?UTF-8?q?low=20script=20=EC=9E=91=EC=84=B1=20(#149)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: github actions script 작성 * refactor: github actions script 수정 --- .github/workflows/test.yml | 76 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..ee8d11231 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,76 @@ +name: PR Test + +on: + pull_request: + branches: + - main + - develop + paths: + - '.github/**' + - 'backend/**' + +jobs: + test: + runs-on: ubuntu-latest + timeout-minutes: 10 + + permissions: + checks: write + pull-requests: write + + steps: + - name: Repository 체크아웃 + uses: actions/checkout@v3 + + - name: JDK 11 설정 + uses: actions/setup-java@v3 + with: + java-version: 11 + distribution: temurin + + - name: Gradle 캐싱 + 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: Gradle 권한 부여 + working-directory: backend/ + run: chmod +x ./gradlew + + - name: 테스트 실행 + working-directory: backend/ + run: ./gradlew --info test + + - name: 테스트 결과 PR에 코멘트 등록 + uses: EnricoMi/publish-unit-test-result-action@v1 + if: always() + with: + files: '**/backend/build/test-results/test/TEST-*.xml' + + - name: 테스트 실패 시, 실패한 코드 라인에 Check 코멘트를 등록 + uses: mikepenz/action-junit-report@v3 + if: always() + with: + report_paths: '**/backend/build/test-results/test/TEST-*.xml' + token: ${{ github.token }} + + - name: build 실패 시 Slack으로 알립니다 + uses: 8398a7/action-slack@v3 + with: + status: ${{ job.status }} + author_name: 백엔드 테스트 실패 알림 + fields: repo, message, commit, author, action, eventName, ref, workflow, job, took + env: + SLACK_CHANNEL: group-dev + SLACK_COLOR: '#FF2D00' + SLACK_USERNAME: 'Github Action' + SLACK_ICON: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png + SLACK_TITLE: Build Failure - ${{ github.event.pull_request.title }} + SLACK_MESSAGE: PR Url - ${{ github.event.pull_request.url }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + if: failure()