diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..356c4c5b --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,54 @@ +name: Backend CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: 리포지토리를 가져옵니다 + uses: actions/checkout@v4 + + - name: JDK 17을 설치합니다 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'corretto' + + - name: Install redis + run: sudo apt-get install -y redis-tools redis-server + + - name: Verify that redis is up + run: redis-cli ping + + - name: Gradle 명령 실행을 위한 권한을 부여합니다 + run: chmod +x gradlew + + - name: Gradle build를 수행합니다 + run: ./gradlew build + + - name: 테스트 결과를 PR에 코멘트로 등록합니다 + uses: EnricoMi/publish-unit-test-result-action@v2 + with: + files: '**/build/test-results/test/TEST-*.xml' + + - name: 테스트 실패 시, 실패한 코드 라인에 Check 코멘트를 등록합니다 + uses: mikepenz/action-junit-report@v3 + with: + report_paths: '**/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_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + if: failure()