Merge branch 'refs/heads/feature/#102' into develop #81
This file contains 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: Java CI with Gradle | |
# 워크 플로우가 언제 실행 될지를 정한다. | |
on: | |
push: | |
branches: | |
- 'main' | |
- 'develop' | |
# 워크플로우에서 할 작업 정의한다. | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
packages: write | |
steps: | |
# 깃허브에서 제공하는 checkout 엑션 사용 | |
- uses: actions/checkout@v4 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'temurin' | |
# Gradle 빌드 엑션을 이용해서 프로젝트 빌드 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
- name: Run build in a subdirectory | |
run: ./gradlew build | |
# 빌드해서 생긴 JAR 파일을 깃허브 아티팩트로 업로드 | |
- name: Upload build artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: core-api | |
path: build/libs/*.jar | |
# 배포 | |
deploy-dev: | |
needs: build | |
runs-on: ubuntu-latest | |
if: github.ref == 'refs/heads/develop' | |
# 빌드한 artifact 다운로드 | |
steps: | |
- name: Download build artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: core-api | |
path: build/libs/ | |
# 개발 서버에 배포 | |
- name: Deploy to dev server | |
uses: appleboy/scp-action@master | |
with: | |
host: ${{secrets.DEV_HOST}} | |
username: ${{secrets.DEV_USERNAME}} | |
key: ${{secrets.SSH_KEY}} | |
source: "build/libs/*.jar" | |
target: "/home/${{secrets.DEV_USERNAME}}/appdata/core-api" | |
strip_components: 2 | |
- name: Restart Process | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{secrets.DEV_HOST}} | |
username: ${{secrets.DEV_USERNAME}} | |
key: ${{secrets.SSH_KEY}} | |
script: | | |
sh /home/${{secrets.DEV_USERNAME}}/appdata/core-api/scripts/restart.sh | |
deploy-prod: | |
needs: build | |
runs-on: ubuntu-latest | |
if: github.ref == 'refs/heads/main' | |
# 빌드한 artifact 다운로드 | |
steps: | |
- name: Download build artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: core-api | |
path: build/libs/ | |
# 운영 서버에 배포 | |
- name: Deploy to prod server | |
uses: appleboy/scp-action@master | |
with: | |
host: ${{secrets.PROD_HOST}} | |
username: ${{secrets.PROD_USERNAME}} | |
key: ${{secrets.SSH_KEY}} | |
source: "build/libs/*.jar" | |
target: "/home/${{secrets.PROD_USERNAME}}/appdata/core-api" | |
strip_components: 2 | |
- name: Restart Process | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{secrets.PROD_HOST}} | |
username: ${{secrets.PROD_USERNAME}} | |
key: ${{secrets.SSH_KEY}} | |
script: | | |
sh /home/${{secrets.PROD_USERNAME}}/appdata/core-api/scripts/restart.sh |