Skip to content

refactor/skintype에 skinconcern 컬럼 추가 #40

refactor/skintype에 skinconcern 컬럼 추가

refactor/skintype에 skinconcern 컬럼 추가 #40

Workflow file for this run

name: CI/CD Pipeline for Spring Boot
on:
push:
branches:
- main
- feat/cicd
jobs:
build:
name: Build & Test
runs-on: ubuntu-22.04
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Grant execute permission for Gradle
run: chmod +x gradlew
- name: Clear Gradle Cache
run: ./gradlew clean --no-build-cache
- name: Build Project
run: ./gradlew clean bootJar -x test # JAR 파일 빌드
- name: Find JAR Files
run: find . -name "*.jar" # ✅ 빌드된 JAR 파일 확인
# ✅ 빌드된 JAR 파일 저장 (루트 경로에서 바로 저장)
- name: Save Build Artifact
uses: actions/upload-artifact@v4
with:
name: springboot-app
path: "build/libs/*.jar" # ✅ 루트 경로의 JAR 파일 저장
deploy:
name: Deploy to EC2
needs: build
runs-on: ubuntu-22.04
steps:
- name: Download Build Artifact
uses: actions/download-artifact@v4
with:
name: springboot-app
- name: Check Downloaded JAR
run: |
pwd
ls -alh
find . -name "*.jar"
# ✅ EC2에 JAR 파일 업로드 (루트 경로)
- name: Upload JAR to EC2
uses: appleboy/scp-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
source: "*.jar" # ✅ 루트 경로의 JAR 파일 업로드
target: "/home/ubuntu"
debug: true
# ✅ EC2에 application.yml 파일 업로드
- name: Upload application.yml to EC2
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
script: |
echo "${{ secrets.APPLICATION_YML }}" > /home/ubuntu/application.yml
chmod 600 /home/ubuntu/application.yml
# ✅ application-aws.yml 업로드
- name: Upload application-aws.yml to EC2
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
script: |
echo "${{ secrets.APPLICATION_AWS_YML }}" > /home/ubuntu/application-aws.yml
chmod 600 /home/ubuntu/application-aws.yml
# ✅ application-prod.yml 업로드 (새로 추가)
- name: Upload application-prod.yml to EC2
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
script: |
echo "${{ secrets.APPLICATION_PROD_YML }}" > /home/ubuntu/application-prod.yml
chmod 600 /home/ubuntu/application-prod.yml
# ✅ EC2 서버에서 애플리케이션 실행
- name: Deploy Application on EC2
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
script: |
echo "🔴 기존 애플리케이션 종료"
sudo fuser -k -n tcp 8080 || true
sleep 5
echo "🚀 새로운 애플리케이션 실행"
nohup java -jar /home/ubuntu/*.jar > /home/ubuntu/nohup.out 2>&1 &