From 39acfc84096f73b5e001408468b88c056f96a8b4 Mon Sep 17 00:00:00 2001 From: Roberto D'Auria Date: Wed, 21 Jan 2026 19:42:47 +0100 Subject: [PATCH] ci: add Docker layer caching to speed up builds --- cloudbuild.yaml | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/cloudbuild.yaml b/cloudbuild.yaml index 5502224..4aa48c9 100644 --- a/cloudbuild.yaml +++ b/cloudbuild.yaml @@ -5,18 +5,30 @@ substitutions: _TOKEN_EXCHANGE_URL: https://auth.mlab-sandbox.measurementlab.net/v0/token/integration steps: - # 1. Build the container image + # 1. Pull cached image (if exists) for layer caching + - name: "gcr.io/cloud-builders/docker" + id: PullCache + entrypoint: bash + args: ["-c", "docker pull ${_REGION}-docker.pkg.dev/${PROJECT_ID}/m-lab/${_SERVICE_NAME}:latest || exit 0"] + + # 2. Build the container image with cache - name: "gcr.io/cloud-builders/docker" id: Build - args: ["build", "-t", "${_REGION}-docker.pkg.dev/${PROJECT_ID}/m-lab/${_SERVICE_NAME}:$BUILD_ID", "-t", "${_REGION}-docker.pkg.dev/${PROJECT_ID}/m-lab/${_SERVICE_NAME}:latest", "."] + args: [ + "build", + "-t", "${_REGION}-docker.pkg.dev/${PROJECT_ID}/m-lab/${_SERVICE_NAME}:$BUILD_ID", + "-t", "${_REGION}-docker.pkg.dev/${PROJECT_ID}/m-lab/${_SERVICE_NAME}:latest", + "--cache-from", "${_REGION}-docker.pkg.dev/${PROJECT_ID}/m-lab/${_SERVICE_NAME}:latest", + "." + ] - # 2. Push to Artifact Registry + # 3. Push to Artifact Registry - name: "gcr.io/cloud-builders/docker" id: Push args: ["push", "${_REGION}-docker.pkg.dev/${PROJECT_ID}/m-lab/${_SERVICE_NAME}:${BUILD_ID}"] waitFor: ["Build"] - # 3. Deploy to Cloud Run + # 4. Deploy to Cloud Run - name: "gcr.io/google.com/cloudsdktool/cloud-sdk" id: Deploy entrypoint: gcloud