Skip to content

Merge pull request #73 from ChillCoders-CapstoneDesign/feature/notifi… #96

Merge pull request #73 from ChillCoders-CapstoneDesign/feature/notifi…

Merge pull request #73 from ChillCoders-CapstoneDesign/feature/notifi… #96

Workflow file for this run

name: Deploy Spring Boot to EC2
on:
push:
branches:
- main # 배포할 브랜치: main 브랜치에 push 될 때만 이 워크플로가 실행됨
jobs:
deploy:
runs-on: ubuntu-latest # GitHub Actions가 실행될 환경 (Ubuntu 최신 버전)
steps:
- name: Checkout source code
uses: actions/checkout@v3 # GitHub 리포지토리의 코드를 가져옴 (clone과 같은 역할)
- name: Set up JDK
uses: actions/setup-java@v3 # Java 환경 세팅
with:
java-version: '21' # 사용할 자바 버전
distribution: 'corretto'
- name: Generate application.yml
run: |
mkdir -p src/main/resources
echo "${{ secrets.APPLICATION_YML }}" > src/main/resources/application.yml
- name: Build with Gradle (Run Tests)
run: ./gradlew clean build -x test # Gradle로 전체 프로젝트를 클린하고 테스트 포함하지 않고 빌드
- name: Set up SSH key
run: |
mkdir -p ~/.ssh
echo "${{ secrets.EC2_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -H ${{ secrets.EC2_HOST }} >> ~/.ssh/known_hosts
- name: Copy jar to EC2
run: |
scp -i ~/.ssh/id_rsa build/libs/*.jar ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:${{ secrets.EC2_PROJECT_PATH }}
- name: Run Spring Boot on EC2
run: |
ssh -i ~/.ssh/id_rsa ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} << EOF
pkill -f 'submate-0.0.1-SNAPSHOT.jar' || true
cd ${{ secrets.EC2_PROJECT_PATH }}
nohup java -jar submate-0.0.1-SNAPSHOT.jar > app.log 2>&1 &
EOF