Skip to content

Merge pull request #103 from fofo-project/feature/#102 #82

Merge pull request #103 from fofo-project/feature/#102

Merge pull request #103 from fofo-project/feature/#102 #82

Workflow file for this run

# 워크 플로우 이름
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