Skip to content

Merge pull request #153 from DevKor-github/develop #10

Merge pull request #153 from DevKor-github/develop

Merge pull request #153 from DevKor-github/develop #10

name: Deploy to Prod EC2
on:
push:
branches: [ main ]
workflow_dispatch:
jobs:
deploy:
name: Build and Deploy to EC2
runs-on: ubuntu-latest
environment: prod
steps:
- name: Checkout source code
uses: actions/checkout@v3
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '21'
- name: Grant execute permission for Gradle
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew test bootJar
- name: Copy JAR to EC2
uses: appleboy/scp-action@v0.1.7
with:
host: ${{ secrets.EC2_HOST }}
username: ubuntu
key: ${{ secrets.EC2_SSH_PRIVATE_KEY }}
source: build/libs/*.jar
target: ~/saerok/
strip_components: '2'
- name: Restart application on EC2
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.EC2_HOST }}
username: ubuntu
key: ${{ secrets.EC2_SSH_PRIVATE_KEY }}
debug: true
script: |
set -euxo pipefail
cd ~/saerok
echo ">>> 현재 위치: $(pwd)"
echo ">>> 파일:"
ls -al
# JAR 확인
JAR_NAME=$(ls -1t *.jar | head -n1)
[ -n "$JAR_NAME" ] || { echo "❌ JAR 없음"; exit 2; }
echo ">>> 선택된 JAR: $JAR_NAME"
# 기존 프로세스 종료
pkill -f "$JAR_NAME" || true
# 백그라운드 실행
DB_URL="${{ secrets.DB_URL }}" \
DB_USERNAME="${{ secrets.DB_USERNAME }}" \
DB_PASSWORD="${{ secrets.DB_PASSWORD }}" \
IAM_ACCESS_KEY="${{ secrets.IAM_ACCESS_KEY }}" \
IAM_SECRET_KEY="${{ secrets.IAM_SECRET_KEY }}" \
UPLOAD_IMAGE_BUCKET_NAME="${{ vars.UPLOAD_IMAGE_BUCKET_NAME }}" \
UPLOAD_IMAGE_DOMAIN="${{ vars.UPLOAD_IMAGE_DOMAIN }}" \
DEX_IMAGE_BUCKET_NAME="${{ vars.DEX_IMAGE_BUCKET_NAME }}" \
DEX_IMAGE_DOMAIN="${{ vars.DEX_IMAGE_DOMAIN }}" \
APPLE_CLIENT_ID="${{ secrets.APPLE_CLIENT_ID }}" \
APPLE_TEAM_ID="${{ secrets.APPLE_TEAM_ID }}" \
APPLE_KEY_ID="${{ secrets.APPLE_KEY_ID }}" \
APPLE_PRIVATE_KEY="${{ secrets.APPLE_PRIVATE_KEY }}" \
JWT_SECRET="${{ secrets.JWT_SECRET }}" \
KAKAO_ADMIN_KEY="${{ secrets.KAKAO_ADMIN_KEY }}" \
KAKAO_CLIENT_ID="${{ secrets.KAKAO_CLIENT_ID }}" \
KAKAO_REDIRECT_URI="${{ secrets.KAKAO_REDIRECT_URI }}" \
KAKAO_CLIENT_SECRET="${{ secrets.KAKAO_CLIENT_SECRET }}" \
KMS_KEY_ID="${{ secrets.KMS_KEY_ID }}" \
FIREBASE_ADMIN_KEY="${{ secrets.FIREBASE_ADMIN_KEY }}" \
nohup java -Duser.timezone=Asia/Seoul -jar $JAR_NAME --spring.profiles.active=prod > app.log 2>&1 &
echo "✅ 배포 완료"