Skip to content

Commit 3828a23

Browse files
authored
Update deploy.yml
1 parent 208ed63 commit 3828a23

1 file changed

Lines changed: 35 additions & 3 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,42 @@ jobs:
5858
# 7. VM에 접속하여 애플리케이션 실행 (환경 변수 주입)
5959
# gcloud ssh 명령어로 VM에 접속하여 기존 앱을 종료하고,
6060
# GitHub Secrets의 값들을 환경 변수로 주입하여 새 앱을 실행합니다.
61-
- name: Deploy to GCP VM
61+
- name: Deploy to GCP VM
62+
env:
63+
# Spring Boot 애플리케이션에 필요한 모든 Secret들을 env 컨텍스트에 등록합니다.
64+
DB_URL: ${{ secrets.DB_URL }}
65+
DB_USERNAME: ${{ secrets.DB_USERNAME }}
66+
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
67+
JWT_SECRET: ${{ secrets.JWT_SECRET }}
68+
GOOGLE_EMAIL: ${{ secrets.GOOGLE_EMAIL }}
69+
GOOGLE_EMAIL_KEY: ${{ secrets.GOOGLE_EMAIL_KEY }}
70+
NAVER_CLIENT: ${{ secrets.NAVER_CLIENT }}
71+
NAVER_SECRET: ${{ secrets.NAVER_SECRET }}
72+
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
6273
run: |
63-
echo "Attempting to run a simple command on the VM..."
74+
# '-plain.jar'를 제외하고 실행 가능한 JAR 파일만 찾습니다.
75+
JAR_FILE_NAME=$(basename $(find build/libs/ -name "*.jar" ! -name "*-plain.jar"))
76+
77+
# gcloud ssh 명령어로 VM에 접속하여 배포 스크립트를 실행합니다.
6478
gcloud compute ssh ${{ secrets.GCP_INSTANCE_NAME }} \
6579
--project=${{ secrets.GCP_PROJECT_ID }} \
6680
--zone=${{ secrets.GCP_ZONE }} \
67-
--command="ls -l ~/"
81+
--command="
82+
# pkill로 기존 프로세스를 더 간단하게 종료 (프로세스가 없어도 오류 안 남)
83+
pkill -f '$JAR_FILE_NAME' || true
84+
sleep 5
85+
86+
# 새 애플리케이션을 백그라운드에서 실행합니다.
87+
echo 'Starting new application process...'
88+
nohup env \
89+
DB_URL='${DB_URL}' \
90+
DB_USERNAME='${DB_USERNAME}' \
91+
DB_PASSWORD='${DB_PASSWORD}' \
92+
JWT_SECRET='${JWT_SECRET}' \
93+
GOOGLE_EMAIL='${GOOGLE_EMAIL}' \
94+
GOOGLE_EMAIL_KEY='${GOOGLE_EMAIL_KEY}' \
95+
NAVER_CLIENT='${NAVER_CLIENT}' \
96+
NAVER_SECRET='${NAVER_SECRET}' \
97+
OPENAI_API_KEY='${OPENAI_API_KEY}' \
98+
java -jar ~/$JAR_FILE_NAME > ~/app.log 2>&1 &
99+
"

0 commit comments

Comments
 (0)