11# Cloud Build configuration for kernel-browser
2+ # Usage: gcloud builds submit --substitutions=_NO_CACHE=true (to disable cache)
3+ substitutions :
4+ _NO_CACHE : ' false'
5+
26steps :
37 # Step 1: Verify kernel-images directory exists
48 - name : ' gcr.io/cloud-builders/docker'
@@ -17,22 +21,36 @@ steps:
1721 args :
1822 - ' -c'
1923 - |
20- echo "Attempting to pull previous image for caching..."
21- docker pull us-docker.pkg.dev/$PROJECT_ID/gcr.io/kernel-browser:latest || echo "No previous image found for caching"
24+ if [ "${_NO_CACHE}" = "true" ]; then
25+ echo "⚠️ Cache disabled by _NO_CACHE=true flag"
26+ else
27+ echo "Attempting to pull previous image for caching..."
28+ docker pull us-docker.pkg.dev/$PROJECT_ID/gcr.io/kernel-browser:latest || echo "No previous image found for caching"
29+ fi
2230
2331 # Step 3: Build the Docker image with caching (using cloudrun Dockerfile)
2432 - name : ' gcr.io/cloud-builders/docker'
33+ entrypoint : ' bash'
2534 args :
26- - ' build'
27- - ' --file'
28- - ' Dockerfile.cloudrun'
29- - ' --cache-from'
30- - ' us-docker.pkg.dev/$PROJECT_ID/gcr.io/kernel-browser:latest'
31- - ' --build-arg'
32- - ' CACHE_BUST=$BUILD_ID'
33- - ' --tag'
34- - ' us-docker.pkg.dev/$PROJECT_ID/gcr.io/kernel-browser:latest'
35- - ' .'
35+ - ' -c'
36+ - |
37+ if [ "${_NO_CACHE}" = "true" ]; then
38+ echo "🔨 Building without cache..."
39+ docker build \
40+ --file Dockerfile.cloudrun \
41+ --no-cache \
42+ --build-arg CACHE_BUST=$BUILD_ID \
43+ --tag us-docker.pkg.dev/$PROJECT_ID/gcr.io/kernel-browser:latest \
44+ .
45+ else
46+ echo "🚀 Building with cache from previous image..."
47+ docker build \
48+ --file Dockerfile.cloudrun \
49+ --cache-from us-docker.pkg.dev/$PROJECT_ID/gcr.io/kernel-browser:latest \
50+ --build-arg CACHE_BUST=$BUILD_ID \
51+ --tag us-docker.pkg.dev/$PROJECT_ID/gcr.io/kernel-browser:latest \
52+ .
53+ fi
3654 timeout : ' 3600s' # Allow 1 hour for build (it's a large image)
3755
3856 # Step 4: Push the image to Artifact Registry
@@ -48,12 +66,14 @@ steps:
4866 - ' -c'
4967 - |
5068 # Check if Twilio secrets exist and choose appropriate service file
51- if gcloud secrets describe twilio-account-sid --project=$PROJECT_ID >/dev/null 2>&1 && \
52- gcloud secrets describe twilio-auth-token --project=$PROJECT_ID >/dev/null 2>&1; then
53- echo "Using service-secrets.yaml with Secret Manager references"
69+ echo "Checking for Twilio secrets..."
70+ if gcloud secrets describe twilio-account-sid --project=$PROJECT_ID && \
71+ gcloud secrets describe twilio-auth-token --project=$PROJECT_ID; then
72+ echo "✅ Twilio secrets found! Using service-secrets.yaml with Secret Manager references"
5473 cp service-secrets.yaml temp-service.yaml
5574 else
56- echo "Using standard service.yaml (secrets not configured)"
75+ echo "⚠️ Twilio secrets NOT found. Using standard service.yaml (secrets not configured)"
76+ echo "To use Twilio TURN servers, run: ./deploy.sh to set up secrets"
5777 cp service.yaml temp-service.yaml
5878 fi
5979
0 commit comments