1
+ name : " Build and Delpoy Order Service to Cloud Run"
2
+
3
+ on :
4
+ push :
5
+ branches :
6
+ - " master"
7
+
8
+ env :
9
+ PROJECT_ID : " ${{ secrets.PROJECT_ID }}"
10
+ GCR_REGION : " ${{ secrets.GCR_REGION }}"
11
+ ORDER_GCR_SERVICE : " ${{ secrets.ORDER_GCR_SERVICE }}"
12
+ ORDER_IMAGE_NAME : " ${{ vars.ORDER_IMAGE_NAME }}"
13
+ GAR_NAME : " ${{ secrets.GAR_NAME }}"
14
+ GAR_REGION : " ${{ secrets.GAR_REGION }}"
15
+ ORDER_TOPIC_NAME : " ${{ vars.ORDER_TOPIC_NAME }}"
16
+ ORDER_SVR_PORT : " ${{ vars.ORDER_SVR_PORT }}"
17
+
18
+ jobs :
19
+ deploy :
20
+ runs-on : " ubuntu-latest"
21
+
22
+ permissions :
23
+ contents : " read"
24
+ id-token : " write"
25
+
26
+ steps :
27
+ - name : " Checkout Repo"
28
+ uses : " actions/checkout@v4"
29
+
30
+ - name : " Authenticate to GCP"
31
+ id : " auth"
32
+ uses : " google-github-actions/auth@v2"
33
+ with :
34
+ credentials_json : " ${{ secrets.GCP_CREDS }}"
35
+
36
+ - name : Set up Cloud SDK
37
+ uses : " google-github-actions/setup-gcloud@v2"
38
+
39
+ - name : " Docker Auth To GAR"
40
+ run : |
41
+ gcloud auth configure-docker "${{env.GAR_REGION}}-docker.pkg.dev"
42
+
43
+ - name : " Build and Push To GAR"
44
+ run : |-
45
+ DOCKER_TAG="${{ env.GAR_REGION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.GAR_NAME }}/${{ env.ORDER_IMAGE_NAME }}:${{ github.sha }}"
46
+ docker build --tag "${DOCKER_TAG}" --build-arg TOPIC_NAME="$ORDER_TOPIC_NAME" --build-arg SVR_PORT="$ORDER_SVR_PORT" ./backend/order-service
47
+ docker push "${DOCKER_TAG}"
48
+
49
+ - name : Deploy to Cloud Run
50
+ run : |
51
+ echo SERVICE_NAME ${{ env.ORDER_GCR_SERVICE }}
52
+ gcloud run deploy ${{ env.ORDER_GCR_SERVICE }} \
53
+ --image ${{ env.GAR_REGION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.GAR_NAME }}/${{ env.ORDER_IMAGE_NAME }}:${{ github.sha }} \
54
+ --platform managed \
55
+ --region ${{ env.GCR_REGION }} \
56
+ --port 3000 \
57
+ --allow-unauthenticated
58
+
59
+ - name : " Show output"
60
+ run : |2-
61
+ echo ${{ steps.deploy.outputs.url }}
0 commit comments