Skip to content

[CHORE] 정상 배포 확인을 위한 헬스 체크 기능 구현 (#211) #105

[CHORE] 정상 배포 확인을 위한 헬스 체크 기능 구현 (#211)

[CHORE] 정상 배포 확인을 위한 헬스 체크 기능 구현 (#211) #105

Workflow file for this run

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 }}