Skip to content

Merge pull request #15 from 2024-ITEC0401/develop #3

Merge pull request #15 from 2024-ITEC0401/develop

Merge pull request #15 from 2024-ITEC0401/develop #3

Workflow file for this run

name: Deploy Spring Boot to AWS EC2
on:
push:
branches:
- main # main 브랜치에 push할 때 트리거
pull_request:
branches:
- main # main 브랜치에 PR이 머지될 때 트리거
jobs:
deploy:
runs-on: ubuntu-latest
steps:
# 1. 리포지토리 체크아웃
- name: Check out the code
uses: actions/checkout@v2
# 2. JDK 17 설치
- name: Setup Java JDK
uses: actions/setup-java@v4
with:
java-version: '17' # 설치할 Java 버전
distribution: 'temurin' # Temurin 배포판 사용
cache: gradle # Gradle 캐시 활성화로 빌드 속도 개선
# 3. Gradle 빌드
- name: Build with Gradle
run: ./gradlew clean build
# 4. EC2 서버에 SSH로 연결하여 배포
- name: Deploy to EC2
uses: appleboy/ssh-action@v0.1.6
with:
host: ${{ secrets.AWS_EC2_HOST }}
username: ${{ secrets.AWS_EC2_USER }}
key: ${{ secrets.AWS_SSH_KEY }}
env:
RDS_HOST: ${{ secrets.RDS_HOST }}

Check failure on line 40 in .github/workflows/deploy.yml

View workflow run for this annotation

GitHub Actions / Deploy Spring Boot to AWS EC2

Invalid workflow file

The workflow is not valid. .github/workflows/deploy.yml (Line: 40, Col: 13): A mapping was not expected
RDS_PORT: ${{ secrets.RDS_PORT }}
RDS_DB_NAME: ${{ secrets.RDS_DB_NAME }}
RDS_USERNAME: ${{ secrets.RDS_USERNAME }}
RDS_PASSWORD: ${{ secrets.RDS_PASSWORD }}
script: |
# 현재 실행 중인 애플리케이션 종료
PID=$(pgrep -f 'java -jar' || true)
if [ -n "$PID" ]; then
kill -9 $PID
fi
# JAR 파일 업로드 및 실행
rm -rf app || true
mkdir app
scp -o StrictHostKeyChecking=no -r build/libs/*.jar ${{ secrets.AWS_EC2_USER }}@${{ secrets.AWS_EC2_HOST }}:~/app/app.jar
# 환경 변수로 RDS 설정을 전달하며 애플리케이션 실행
nohup java -jar ~/app/app.jar \
--spring.datasource.url=jdbc:mysql://${RDS_HOST}:${RDS_PORT}/${RDS_DB_NAME} \
--spring.datasource.username=${RDS_USERNAME} \
--spring.datasource.password=${RDS_PASSWORD} > /dev/null 2>&1 &