1- name : Deploy to GCP
1+ name : Deploy to Cloud Run
22
33on :
44 push :
@@ -12,46 +12,41 @@ jobs:
1212 - name : Checkout
1313 uses : actions/checkout@v3
1414
15- # Java 설정
1615 - name : Set up JDK 17
1716 uses : actions/setup-java@v3
1817 with :
1918 java-version : ' 17'
2019 distribution : ' temurin'
2120
22- # .env / FCM 파일 생성 (빌드 전에 먼저 생성)
2321 - name : Create .env file
2422 run : echo "${{ secrets.ENV_FILE }}" > .env
2523
2624 - name : Create FCM key file
2725 run : echo "${{ secrets.FCM_SERVICE_ACCOUNT }}" > src/main/resources/firebase-adminsdk.json
2826
29- # Gradle 빌드 (테스트 스킵)
3027 - name : Build with Gradle
3128 run : |
3229 chmod +x gradlew
3330 ./gradlew clean build -x test
3431
35- # GCP 인증
3632 - name : Authenticate to GCP
3733 uses : google-github-actions/auth@v1
3834 with :
3935 credentials_json : ${{ secrets.GCP_SA_KEY }}
4036
41- # Docker 이미지 빌드 & 푸시
37+ # Docker 이미지 빌드 & GCR 푸시
4238 - name : Build and Push Docker image
4339 run : |
4440 gcloud auth configure-docker
4541 docker build -t gcr.io/${{ secrets.GCP_PROJECT_ID }}/my-app:${{ github.sha }} .
4642 docker push gcr.io/${{ secrets.GCP_PROJECT_ID }}/my-app:${{ github.sha }}
4743
48- # 배포
49- - name : Deploy to Compute Engine
44+ # Cloud Run 배포 (Compute Engine이랑 다른 부분)
45+ - name : Deploy to Cloud Run
5046 run : |
51- gcloud compute ssh [VM이름] --zone=[존] --command="
52- docker pull gcr.io/${{ secrets.GCP_PROJECT_ID }}/my-app:${{ github.sha }} &&
53- docker stop my-app || true &&
54- docker rm my-app || true &&
55- docker run -d --name my-app -p 8080:8080 \
56- gcr.io/${{ secrets.GCP_PROJECT_ID }}/my-app:${{ github.sha }}
57- "
47+ gcloud run deploy my-app \
48+ --image gcr.io/${{ secrets.GCP_PROJECT_ID }}/my-app:${{ github.sha }} \
49+ --region asia-northeast3 \
50+ --platform managed \
51+ --allow-unauthenticated \
52+ --port 8080
0 commit comments