-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcloudbuild.yaml
More file actions
63 lines (56 loc) · 1.97 KB
/
Copy pathcloudbuild.yaml
File metadata and controls
63 lines (56 loc) · 1.97 KB
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
62
63
# cloudbuild.yaml
steps:
# Step 1: Pull the latest image to use as a layer cache source
- name: 'gcr.io/cloud-builders/docker'
entrypoint: 'bash'
args:
- '-c'
- |
docker pull $_AR_REGION-docker.pkg.dev/$PROJECT_ID/$_AR_REPO_NAME/$__IMAGE_NAME:latest || exit 0
# Step 2: Build the container image using the Dockerfile and caching
- name: 'gcr.io/cloud-builders/docker'
args:
- 'build'
- '-t'
- '$_AR_REGION-docker.pkg.dev/$PROJECT_ID/$_AR_REPO_NAME/$__IMAGE_NAME:$COMMIT_SHA'
- '-t'
- '$_AR_REGION-docker.pkg.dev/$PROJECT_ID/$_AR_REPO_NAME/$__IMAGE_NAME:latest'
- '--cache-from'
- '$_AR_REGION-docker.pkg.dev/$PROJECT_ID/$_AR_REPO_NAME/$__IMAGE_NAME:latest'
- '.'
# Step 3: Push the tagged images to GCP Artifact Registry
- name: 'gcr.io/cloud-builders/docker'
args:
- 'push'
- '$_AR_REGION-docker.pkg.dev/$PROJECT_ID/$_AR_REPO_NAME/$__IMAGE_NAME:$COMMIT_SHA'
- name: 'gcr.io/cloud-builders/docker'
args:
- 'push'
- '$_AR_REGION-docker.pkg.dev/$PROJECT_ID/$_AR_REPO_NAME/$__IMAGE_NAME:latest'
# Step 4: Deploy the built container to Cloud Run
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
entrypoint: gcloud
args:
- 'run'
- 'deploy'
- '$_SERVICE_NAME'
- '--image'
- '$_AR_REGION-docker.pkg.dev/$PROJECT_ID/$_AR_REPO_NAME/$__IMAGE_NAME:$COMMIT_SHA'
- '--region'
- '$_DEPLOY_REGION'
- '--platform'
- 'managed'
- '--allow-unauthenticated'
# Images tracking for Cloud Build metadata
images:
- '$_AR_REGION-docker.pkg.dev/$PROJECT_ID/$_AR_REPO_NAME/$__IMAGE_NAME:$COMMIT_SHA'
- '$_AR_REGION-docker.pkg.dev/$PROJECT_ID/$_AR_REPO_NAME/$__IMAGE_NAME:latest'
# Substitution variable placeholders for flexible environments
substitutions:
_AR_REGION: us-central1
_AR_REPO_NAME: BAGLE_WebApp
_DEPLOY_REGION: us-central1
_SERVICE_NAME: bagle
__IMAGE_NAME: bagle_webapp
options:
logging: CLOUD_LOGGING_ONLY