5959 # gcloud ssh 명령어로 VM에 접속하여 기존 앱을 종료하고,
6060 # GitHub Secrets의 값들을 환경 변수로 주입하여 새 앱을 실행합니다.
6161 - 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 }} # 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 }}
7362 run : |
74- # build/libs/ 폴더에서 생성된 JAR 파일의 순수 이름만 추출합니다.
75- JAR_FILE_NAME=$(basename $(find build/libs/ -name "*.jar" | head -n 1))
76-
77- # gcloud ssh 명령어로 VM에 접속하여 배포 스크립트를 실행합니다.
63+ echo "Attempting to run a simple command on the VM..."
7864 gcloud compute ssh ${{ secrets.GCP_INSTANCE_NAME }} \
7965 --project=${{ secrets.GCP_PROJECT_ID }} \
8066 --zone=${{ secrets.GCP_ZONE }} \
81- --command="
82- # 기존에 실행 중인 동일한 이름의 Java 프로세스를 찾아 종료합니다.
83- PID=\$(pgrep -f '$JAR_FILE_NAME')
84- if [ -n \"\$PID\" ]; then
85- echo 'Stopping existing process with PID: \$PID'
86- kill -9 \$PID
87- sleep 5
88- fi
89-
90- # env 컨텍스트에 등록된 변수들을 nohup 명령어 앞에 붙여서 실행합니다.
91- echo 'Starting new application process...'
92- nohup env \
93- DB_URL='${DB_URL}' \
94- DB_USERNAME='${DB_USERNAME}' \
95- DB_PASSWORD='${DB_PASSWORD}' \
96- JWT_SECRET='${JWT_SECRET}' \
97- GOOGLE_EMAIL='${GOOGLE_EMAIL}' \
98- GOOGLE_EMAIL_KEY='${GOOGLE_EMAIL_KEY}' \
99- NAVER_CLIENT='${NAVER_CLIENT}' \
100- NAVER_SECRET='${NAVER_SECRET}' \
101- OPENAI_API_KEY='${OPENAI_API_KEY}' \
102- java -jar ~/$JAR_FILE_NAME > ~/app.log 2>&1 &
103- "
67+ --command="ls -l ~/"
0 commit comments