서비스 테스트 코드 작성하기 & 리드미 파일 최종 수정 (#146) #22
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Java CI and Deploy to AWS EC2 | |
on: | |
push: | |
branches: [ "Week10" ] | |
pull_request: | |
branches: [ "Week10" ] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 | |
- name: Build with Gradle Wrapper | |
run: ./gradlew clean build | |
deploy: | |
runs-on: ubuntu-latest | |
needs: build | |
environment: production | |
permissions: | |
contents: read | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
- name: Decode and save .pem file | |
env: | |
EC2_SSH_KEY_BASE64: ${{ secrets.EC2_SSH_KEY_BASE64 }} | |
run: | | |
echo "$EC2_SSH_KEY_BASE64" | base64 -d > ec2-key.pem | |
chmod 600 ec2-key.pem | |
- name: Upload JAR to EC2 | |
env: | |
EC2_HOST: ${{ secrets.EC2_HOST }} | |
EC2_USER: ${{ secrets.EC2_USER }} | |
run: | | |
scp -i ec2-key.pem -o StrictHostKeyChecking=no ./build/libs/your-app.jar $EC2_USER@$EC2_HOST:~/app/your-app.jar | |
- name: Restart Application on EC2 | |
env: | |
EC2_HOST: ${{ secrets.EC2_HOST }} | |
EC2_USER: ${{ secrets.EC2_USER }} | |
run: | | |
ssh -i ec2-key.pem -o StrictHostKeyChecking=no $EC2_USER@$EC2_HOST << 'EOF' | |
# 현재 실행 중인 Java 프로세스 종료 | |
echo "현재 실행 중인 Java 프로세스 종료 중..." | |
pkill -f 'java' || echo "종료할 Java 프로세스 없음" | |
# 새로운 애플리케이션 실행 | |
JAR_FILE="dbdr-0.0.1-SNAPSHOT.jar" | |
echo "새로운 애플리케이션을 실행합니다: $JAR_FILE" | |
nohup java -jar ~/app/$JAR_FILE --server.port=8080 > ~/app/app.log 2>&1 & | |
# 실행 확인 | |
sleep 10 | |
echo "새로 실행된 Java 프로세스:" | |
pgrep -f 'java' | |
EOF |