Skip to content

Merge pull request #33 from trans-talk/develop #5

Merge pull request #33 from trans-talk/develop

Merge pull request #33 from trans-talk/develop #5

Workflow file for this run

name: Build and Deploy JAR
on:
push:
branches:
- main
jobs:
build_and_deploy:
runs-on: ubuntu-latest
# 환경 변수 정의
env:
BUILD_DIR: build/libs
# ⚠️ Jar 파일 이름 확인 후 정확하게 기입해주세요.
JAR_NAME: transtalk-0.0.1-SNAPSHOT.jar
steps:
- name: Checkout code
uses: actions/checkout@v4
# (JDK 설정 생략...)
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
# 1️⃣ 빌드 단계: 테스트 제외하고 Jar 파일 빌드
- name: Build JAR (Skip Tests)
run: |
chmod +x gradlew
./gradlew clean bootJar -x test
# 2️⃣ 파일 전송 단계: 빌드된 Jar 파일을 /home/ubuntu/로 전송 (SCP 사용)
- name: Transfer JAR to EC2
uses: appleboy/scp-action@v1
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_PRIVATE_KEY }}
source: ${{ env.BUILD_DIR }}/${{ env.JAR_NAME }}
# ⚠️ Jar 파일이 /home/ubuntu/에 저장되도록 target 경로 수정
target: /home/${{ secrets.EC2_USER }}/
strip_components: 2
# 3️⃣ 배포 실행 단계: SSH로 접속하여 서버 종료 및 새 Jar 실행 스크립트 실행
- name: Execute Deployment Script on EC2
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_PRIVATE_KEY }}
script: |
# ⚠️ /home/ubuntu/로 이동
cd /home/${{ secrets.EC2_USER }}/
chmod +x ./deploy.sh
./deploy.sh