Cloud Build Helper
Quick Start
Configure Cloud Build pipelines with proper caching and optimization for fast, efficient builds.
Instructions
Step 1: Create cloudbuild.yaml
steps:
Build step
- name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/$PROJECT_ID/myapp:$COMMIT_SHA', '.']
Push to registry
- name: 'gcr.io/cloud-builders/docker' args: ['push', 'gcr.io/$PROJECT_ID/myapp:$COMMIT_SHA']
Deploy
- name: 'gcr.io/cloud-builders/gcloud'
args:
- 'run'
- 'deploy'
- 'myapp'
- '--image=gcr.io/$PROJECT_ID/myapp:$COMMIT_SHA'
- '--region=us-central1'
images:
- 'gcr.io/$PROJECT_ID/myapp:$COMMIT_SHA'
options: machineType: 'N1_HIGHCPU_8' logging: CLOUD_LOGGING_ONLY
Step 2: Configure caching
steps:
- name: 'gcr.io/cloud-builders/docker'
entrypoint: 'bash'
args:
- '-c'
- |
docker pull gcr.io/$PROJECT_ID/myapp:latest || exit 0
docker build
--cache-from gcr.io/$PROJECT_ID/myapp:latest
-t gcr.io/$PROJECT_ID/myapp:$COMMIT_SHA
-t gcr.io/$PROJECT_ID/myapp:latest
. docker push gcr.io/$PROJECT_ID/myapp:$COMMIT_SHA docker push gcr.io/$PROJECT_ID/myapp:latest
Step 3: Set up build triggers
Create trigger from GitHub
gcloud builds triggers create github
--repo-name=my-repo
--repo-owner=my-org
--branch-pattern="^main$"
--build-config=cloudbuild.yaml
Create trigger with substitutions
gcloud builds triggers create github
--repo-name=my-repo
--repo-owner=my-org
--branch-pattern="^main$"
--build-config=cloudbuild.yaml
--substitutions=_ENV=production,_REGION=us-central1
Step 4: Optimize build performance
Use parallel steps:
steps:
These run in parallel
-
name: 'gcr.io/cloud-builders/npm' id: 'install-frontend' args: ['install'] dir: 'frontend' waitFor: ['-']
-
name: 'gcr.io/cloud-builders/npm' id: 'install-backend' args: ['install'] dir: 'backend' waitFor: ['-']
This waits for both
- name: 'gcr.io/cloud-builders/npm' args: ['run', 'build'] waitFor: ['install-frontend', 'install-backend']
Best Practices
-
Use caching to speed up builds
-
Implement parallel build steps
-
Use appropriate machine types
-
Store artifacts in Cloud Storage
-
Use substitution variables
-
Implement proper error handling
-
Monitor build performance
-
Use Cloud Build's built-in builders when possible
Advanced
For detailed information, see:
-
Build Steps - Build step configuration and patterns
-
Caching - Caching strategies for faster builds
-
Triggers - Build trigger configuration