Skip to content

Merge branch 'main' into develop #250

Merge branch 'main' into develop

Merge branch 'main' into develop #250

Workflow file for this run

name: Deploy to Development Server
on:
push:
branches:
- develop
workflow_dispatch:
jobs:
compile:
runs-on: ubuntu-22.04
steps:
- name: "레포지토리를 체크아웃한다."
uses: actions/checkout@v4
- name: "Gradle Wrapper 무결성을 검증한다."
uses: gradle/actions/wrapper-validation@v4
- name: "JDK 21을 설정한다."
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
cache: 'gradle'
- name: "Kotlin 소스를 컴파일한다."
run: ./gradlew compileKotlin --configuration-cache --build-cache
- name: "Discord로 빌드 실패를 알린다."
if: failure()
uses: Ilshidur/action-discord@0.3.2
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
with:
args: |
❌ **컴파일 도중 문제가 발생했습니다.**
actor : `@${{ github.actor }}`
branch : `${{ github.head_ref }}`
pull-request : `${{ github.event.pull_request.title }}`
[🔗 작업 요약 보기](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})
deploy:
needs:
- compile
runs-on: ubuntu-22.04
env:
SPRING_PROFILES_ACTIVE: dev
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_REPOSITORY: ${{ secrets.DOCKER_REPOSITORY }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
IMAGE_TAG: dev-${{ github.sha }}
steps:
- name: "레포지토리를 체크아웃한다."
uses: actions/checkout@v4
- name: "JDK 21을 설정한다."
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
- name: "Docker buildx를 설정한다."
uses: docker/setup-buildx-action@v3
- name: "Dockerhub 로그인"
uses: docker/login-action@v3
with:
username: ${{ env.DOCKER_USERNAME }}
password: ${{ env.DOCKER_PASSWORD }}
- name: "Jib을 사용하여 Docker 이미지를 빌드 후 Dockerhub에 푸시한다."
run: |
./gradlew jib \
-Djib.to.auth.username=${{ secrets.DOCKER_USERNAME }} \
-Djib.to.auth.password=${{ secrets.DOCKER_PASSWORD }} \
-Djib.to.image=${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY }}:${{ env.IMAGE_TAG }} \
-Djib.to.tags=${{ env.IMAGE_TAG }} \
-DDB_HOST=${{ secrets.DEV_DB_HOST }} \
-DDB_PORT=${{ secrets.DEV_DB_PORT }} \
-DDB_SCHEMA=${{ secrets.DEV_DB_SCHEMA }} \
-DDB_USERNAME=${{ secrets.DEV_DB_USERNAME }} \
-DDB_PASSWORD=${{ secrets.DEV_DB_PASSWORD }} \
env:
IMAGE_TAG: ${{ env.IMAGE_TAG }}
- name: "서버에 배포한다."
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.DEV_SERVER_HOST }}
username: ${{ secrets.DEV_SERVER_USERNAME }}
key: ${{ secrets.DEV_SERVER_SSH_KEY }}
script: |
echo "${{ secrets.DOCKER_PASSWORD }}" | docker login --username "${{ secrets.DOCKER_USERNAME }}" --password-stdin
cd ~
chmod +x deploy.sh
./deploy.sh ${{ env.IMAGE_TAG }}
- name: "Discord로 Development 배포 실패를 알린다."
if: failure()
uses: Ilshidur/action-discord@0.3.2
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
with:
args: |
❌ **`Development` 배포 도중 문제가 발생했습니다.**
actor : `@${{ github.actor }}`
branch : `${{ github.head_ref }}`
pull-request : `${{ github.event.pull_request.title }}`
[🔗 작업 요약 보기](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})