-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcloud-build.yaml
61 lines (49 loc) · 2.17 KB
/
cloud-build.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
steps:
# Build Frontend Image
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'africa-south1-docker.pkg.dev/my-todo-app-project-445006/my-todo-app-repo/my-todo-app-frontend', './frontend']
id: 'Build Docker Image - Frontend'
# Push Frontend Image
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'africa-south1-docker.pkg.dev/my-todo-app-project-445006/my-todo-app-repo/my-todo-app-frontend']
id: 'Push Docker Image - Frontend'
# Build Backend Image
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'africa-south1-docker.pkg.dev/my-todo-app-project-445006/my-todo-app-repo/my-todo-app-backend', './backend']
id: 'Build Docker Image - Backend'
# Push Backend Image
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'africa-south1-docker.pkg.dev/my-todo-app-project-445006/my-todo-app-repo/my-todo-app-backend' ]
id: 'Push Docker Image - Backend'
- name: 'google/cloud-sdk:latest'
entrypoint: 'sh'
args:
- -xe
- -c
- |
# Get the short SHA (assuming it's available in the environment or CI/CD context)
SHORT_SHA=$(git rev-parse --short=7 HEAD)
# Apply deployment manifests
gcloud deploy apply --file k8s/deploy/pipeline.yaml --region=africa-south1
gcloud deploy apply --file k8s/deploy/deploy-to-cluster-dev.yaml --region=africa-south1
gcloud deploy apply --file k8s/deploy/deploy-to-cluster-prod.yaml --region=africa-south1
# Create releases with the short SHA as part of the release name
gcloud deploy releases create "app-release-frontend-${SHORT_SHA}" --delivery-pipeline=my-todo-app-pipeline --region=africa-south1 --from-k8s-manifest=./k8s/frontend.yaml
gcloud deploy releases create "app-release-backend-${SHORT_SHA}" --delivery-pipeline=my-todo-app-pipeline --region=africa-south1 --from-k8s-manifest=./k8s/backend.yaml
# Deploy to Kubernetes
# - name: 'gcr.io/cloud-builders/kubectl'
# args:
# - apply
# - '-f'
# - './k8s/frontend.yaml'
# id: 'Deploy Frontend'
# - name: 'gcr.io/cloud-builders/kubectl'
# args:
# - apply
# - '-f'
# - './k8s/backend.yaml'
# id: 'Deploy Backend'
options:
logging: CLOUD_LOGGING_ONLY
# substitutions:
# _SHORT_SHA: 'default-short-sha'