1+ # .github/workflows/deploy.yml
2+
13name : BE CI/CD
24
35on :
911 runs-on : ubuntu-latest
1012
1113 steps :
12- # 1. 소스 코드 체크아웃
14+ # ... 1~5단계는 동일 ...
1315 - name : Checkout
1416 uses : actions/checkout@v4
15-
16- # 2. JDK 17 설치
1717 - name : Set up JDK 17
1818 uses : actions/setup-java@v4
1919 with :
2020 java-version : ' 17'
2121 distribution : ' temurin'
22-
23- # 3. Gradle 실행 권한 부여
2422 - name : Grant execute permission for gradlew
2523 run : chmod +x gradlew
26-
27- # 4. Gradle로 빌드
2824 - name : Build with Gradle
2925 run : ./gradlew build
30-
31- # 5. GCP 인증
3226 - name : Authenticate to Google Cloud
3327 uses : ' google-github-actions/auth@v2'
3428 with :
3529 credentials_json : ' ${{ secrets.GCP_SA_KEY }}'
3630
37- # 6. 배포 스크립트 파일 생성
31+ # 6. 배포 스크립트 파일 생성 (간결한 java 명령어 사용)
3832 - name : Create Deploy Script
3933 run : |
4034 JAR_FILE_NAME=$(basename $(find build/libs/ -name "*.jar" ! -name "*-plain.jar"))
@@ -43,13 +37,11 @@ jobs:
4337 #!/bin/bash
4438
4539 # 기존 프로세스 종료
46- echo "Stopping existing application..."
4740 pkill -f '$JAR_FILE_NAME' || true
4841 sleep 5
4942
50- # 새 애플리케이션 시작 (찾아낸 Java 17 절대 경로 사용)
51- echo "Starting new application..."
52- nohup /usr/lib/jvm/java-17-openjdk-17.0.16.0.8-2.0.1.el8.x86_64/bin/java \
43+ # 새 애플리케이션 시작 (간단한 java 명령어 사용)
44+ nohup java \
5345 -Dspring.datasource.url='${{ secrets.DB_URL }}' \
5446 -Dspring.datasource.username='${{ secrets.DB_USERNAME }}' \
5547 -Dspring.datasource.password='${{ secrets.DB_PASSWORD }}' \
@@ -63,16 +55,11 @@ jobs:
6355 -jar ~/$JAR_FILE_NAME > ~/app.log 2>&1 &
6456
6557 # 프로세스 시작 확인
66- echo "Waiting for application to start..."
6758 sleep 15
6859 if pgrep -f '$JAR_FILE_NAME' > /dev/null; then
6960 echo "Application process is running."
70- echo "Process ID: \$(pgrep -f '$JAR_FILE_NAME')"
71- echo "--- Last 50 lines of app.log ---"
72- tail -50 ~/app.log
7361 else
7462 echo "Failed to start application. Check app.log for details."
75- echo "--- Last 50 lines of app.log ---"
7663 tail -50 ~/app.log
7764 exit 1
7865 fi
8875 ${{ secrets.GCP_INSTANCE_NAME }}:~/ \
8976 --project=${{ secrets.GCP_PROJECT_ID }} \
9077 --zone=${{ secrets.GCP_ZONE }}
91-
78+
9279 # 8. VM에서 배포 스크립트 실행
9380 - name : Execute Deploy Script on VM
9481 run : |
0 commit comments