[CHORE] 정상 배포 확인을 위한 헬스 체크 기능 구현 (#211) #105
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: dev-cd | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - "develop" | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Branch | |
| uses: actions/checkout@v4 | |
| - name: Setting dev-secret.yml | |
| run: | | |
| echo "${{ secrets.DEV_SECRET_YML }}" > ./src/main/resources/dev-secret.yml | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| - name: Make gradlew executable | |
| run: chmod +x gradlew | |
| - name: Clean And Test With Gradle | |
| run: ./gradlew clean test | |
| - name: bootJar with Gradle | |
| run: ./gradlew bootJar --info | |
| - name: Change artifact file name | |
| run: mv build/libs/*.jar build/libs/app.jar | |
| - name: Upload artifact file | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: app-artifact | |
| path: ./build/libs/app.jar | |
| if-no-files-found: error | |
| - name: Upload deploy scripts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: deploy-scripts | |
| path: ./scripts/dev/ | |
| if-no-files-found: error | |
| deploy: | |
| needs: build | |
| runs-on: dev | |
| steps: | |
| - name: Download artifact file | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: app-artifact | |
| path: ~/app | |
| - name: Download deploy scripts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: deploy-scripts | |
| path: ~/app/scripts/ | |
| - name: Replace application to latest | |
| run: sudo sh ~/app/scripts/replace-new-version.sh | |
| - name: Health Check | |
| run: sh ~/app/scripts/health-check.sh | |
| - name: Send Discord Alert on Failure | |
| if: failure() | |
| run: | | |
| curl -H "Content-Type: application/json" \ | |
| -X POST \ | |
| -d "{\"content\":\":x: [DEV] 배포 실패! 확인이 필요합니다.\n링크: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}\"}" \ | |
| ${{ secrets.DISCORD_WEB_HOOK }} |