From 012fb5b4e358790c6d13f5b8941725f8fac21230 Mon Sep 17 00:00:00 2001 From: Juan Celhay Date: Wed, 29 Jul 2026 15:37:12 -0400 Subject: [PATCH 1/5] Fix image replacement in cd (#3186) --- release/cloudbuild-nomulus.yaml | 1 + release/cloudbuild-release.yaml | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/release/cloudbuild-nomulus.yaml b/release/cloudbuild-nomulus.yaml index dc38dbc3941..7c3bae94f86 100644 --- a/release/cloudbuild-nomulus.yaml +++ b/release/cloudbuild-nomulus.yaml @@ -204,6 +204,7 @@ steps: --source=. \ --skaffold-file=release/clouddeploy/skaffold.yaml \ --deploy-parameters="deployed_image=gcr.io/${PROJECT_ID}/nomulus@${nomulus_digest},base_image=us-docker.pkg.dev/${PROJECT_ID}/gcr.io/nomulus" + # The tarballs and jars to upload to GCS. artifacts: objects: diff --git a/release/cloudbuild-release.yaml b/release/cloudbuild-release.yaml index 19da2c0cd7b..425351292f8 100644 --- a/release/cloudbuild-release.yaml +++ b/release/cloudbuild-release.yaml @@ -292,6 +292,27 @@ steps: if [[ "${TAG_NAME}" =~ ^nomulus-20[0-9]{2}[0-1][0-9][0-3][0-9]-RC[0-9]{2}$ ]]; then echo "Tag format matches a nomulus release. Triggering nomulus build..." gcloud builds submit . --config=release/cloudbuild-nomulus.yaml --substitutions=TAG_NAME=$TAG_NAME + echo "=============================================" + echo "Triggering Google Cloud Deploy Release" + echo "=============================================" + echo "Tag Name: ${TAG_NAME}" + echo "Project ID: ${PROJECT_ID}" + pipeline="deploy-nomulus" + region="us-central1" + # Release names must consist of lowercase letters, numbers, and hyphens. + release_name=$(echo "${TAG_NAME}" | tr '[:upper:]' '[:lower:]' | tr '_' '-') + echo "Release Name: $release_name" + echo "=============================================" + nomulus_digest=$(gcloud container images list-tags gcr.io/${PROJECT_ID}/nomulus \ + --format="get(digest)" --filter="tags = ${TAG_NAME}") + gcloud deploy releases create "$release_name" \ + --delivery-pipeline="$pipeline" \ + --region="$region" \ + --project=${PROJECT_ID} \ + --images="gcr.io/${PROJECT_ID}/nomulus=gcr.io/${PROJECT_ID}/nomulus@${nomulus_digest}" \ + --source=. \ + --skaffold-file=release/clouddeploy/skaffold.yaml \ + --deploy-parameters="deployed_image=gcr.io/${PROJECT_ID}/nomulus@${nomulus_digest},base_image=us-docker.pkg.dev/${PROJECT_ID}/gcr.io/nomulus" # Check for a proxy release tag (e.g., "proxy-v1.2.3") elif [[ "${TAG_NAME}" =~ ^proxy-20[0-9]{2}[0-1][0-9][0-3][0-9]-RC[0-9]{2}$ ]]; then echo "Tag format matches a proxy release. Triggering proxy build..." From e832a0273f2b936cb22296940fb49f2e8abaf5f2 Mon Sep 17 00:00:00 2001 From: Juan Celhay Date: Thu, 30 Jul 2026 12:02:58 -0400 Subject: [PATCH 2/5] read sql jobs from ar --- release/cloudbuild-nomulus.yaml | 3 +-- release/clouddeploy/delivery-pipeline.yaml | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/release/cloudbuild-nomulus.yaml b/release/cloudbuild-nomulus.yaml index 7c3bae94f86..54e748030fe 100644 --- a/release/cloudbuild-nomulus.yaml +++ b/release/cloudbuild-nomulus.yaml @@ -203,8 +203,7 @@ steps: --images="gcr.io/${PROJECT_ID}/nomulus=gcr.io/${PROJECT_ID}/nomulus@${nomulus_digest}" \ --source=. \ --skaffold-file=release/clouddeploy/skaffold.yaml \ - --deploy-parameters="deployed_image=gcr.io/${PROJECT_ID}/nomulus@${nomulus_digest},base_image=us-docker.pkg.dev/${PROJECT_ID}/gcr.io/nomulus" - + --deploy-parameters="deployed_image=gcr.io/${PROJECT_ID}/nomulus@${nomulus_digest},base_image=us-docker.pkg.dev/${PROJECT_ID}/gcr.io/nomulus,tag_name=${TAG_NAME},project_id=${PROJECT_ID}" # The tarballs and jars to upload to GCS. artifacts: objects: diff --git a/release/clouddeploy/delivery-pipeline.yaml b/release/clouddeploy/delivery-pipeline.yaml index b899be95dfd..0d30feefee3 100644 --- a/release/clouddeploy/delivery-pipeline.yaml +++ b/release/clouddeploy/delivery-pipeline.yaml @@ -20,11 +20,14 @@ serialPipeline: image: gcr.io/google.com/cloudsdktool/google-cloud-cli:stable env: TARGET_ID: ${{ target.id }} + TAG_NAME: ${{ deploy_params['tag_name'] }} + PROJECT_ID: ${{ deploy_params['project_id'] }} command: ["/bin/bash"] args: - "-c" - | - gcloud builds submit --config=release/cloudbuild-schema-verify-${TARGET_ID}.yaml + gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/release/cloudbuild-schema-verify-${TARGET_ID}.yaml . + gcloud builds submit --config=cloudbuild-schema-verify-${TARGET_ID}.yaml analysis: # 10 minutes. duration: 600s @@ -61,11 +64,14 @@ serialPipeline: image: gcr.io/google.com/cloudsdktool/google-cloud-cli:stable env: TARGET_ID: ${{ target.id }} + TAG_NAME: ${{ deploy_params['tag_name'] }} + PROJECT_ID: ${{ deploy_params['project_id'] }} command: ["/bin/bash"] args: - "-c" - | - gcloud builds submit --config=release/cloudbuild-schema-deploy-${TARGET_ID}.yaml + gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/release/cloudbuild-schema-deploy-${TARGET_ID}.yaml . + gcloud builds submit --config=cloudbuild-schema-deploy-${TARGET_ID}.yaml analysis: # 10 minutes. duration: 600s @@ -86,11 +92,14 @@ serialPipeline: image: gcr.io/google.com/cloudsdktool/google-cloud-cli:stable env: TARGET_ID: ${{ target.id }} + TAG_NAME: ${{ deploy_params['tag_name'] }} + PROJECT_ID: ${{ deploy_params['project_id'] }} command: ["/bin/bash"] args: - "-c" - | - gcloud builds submit --config=release/cloudbuild-schema-verify-${TARGET_ID}.yaml + gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/release/cloudbuild-schema-verify-${TARGET_ID}.yaml . + gcloud builds submit --config=cloudbuild-schema-verify-${TARGET_ID}.yaml analysis: # 10 minutes. duration: 600s @@ -127,11 +136,14 @@ serialPipeline: image: gcr.io/google.com/cloudsdktool/google-cloud-cli:stable env: TARGET_ID: ${{ target.id }} + TAG_NAME: ${{ deploy_params['tag_name'] }} + PROJECT_ID: ${{ deploy_params['project_id'] }} command: ["/bin/bash"] args: - "-c" - | - gcloud builds submit --config=release/cloudbuild-schema-deploy-${TARGET_ID}.yaml + gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/release/cloudbuild-schema-deploy-${TARGET_ID}.yaml . + gcloud builds submit --config=cloudbuild-schema-deploy-${TARGET_ID}.yaml analysis: # 10 minutes. duration: 600s From 5db6a0f7b7d205216c44bf84ce6f4d59382e5cfa Mon Sep 17 00:00:00 2001 From: Juan Celhay Date: Thu, 30 Jul 2026 12:09:20 -0400 Subject: [PATCH 3/5] revert release change --- release/cloudbuild-release.yaml | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/release/cloudbuild-release.yaml b/release/cloudbuild-release.yaml index 425351292f8..19da2c0cd7b 100644 --- a/release/cloudbuild-release.yaml +++ b/release/cloudbuild-release.yaml @@ -292,27 +292,6 @@ steps: if [[ "${TAG_NAME}" =~ ^nomulus-20[0-9]{2}[0-1][0-9][0-3][0-9]-RC[0-9]{2}$ ]]; then echo "Tag format matches a nomulus release. Triggering nomulus build..." gcloud builds submit . --config=release/cloudbuild-nomulus.yaml --substitutions=TAG_NAME=$TAG_NAME - echo "=============================================" - echo "Triggering Google Cloud Deploy Release" - echo "=============================================" - echo "Tag Name: ${TAG_NAME}" - echo "Project ID: ${PROJECT_ID}" - pipeline="deploy-nomulus" - region="us-central1" - # Release names must consist of lowercase letters, numbers, and hyphens. - release_name=$(echo "${TAG_NAME}" | tr '[:upper:]' '[:lower:]' | tr '_' '-') - echo "Release Name: $release_name" - echo "=============================================" - nomulus_digest=$(gcloud container images list-tags gcr.io/${PROJECT_ID}/nomulus \ - --format="get(digest)" --filter="tags = ${TAG_NAME}") - gcloud deploy releases create "$release_name" \ - --delivery-pipeline="$pipeline" \ - --region="$region" \ - --project=${PROJECT_ID} \ - --images="gcr.io/${PROJECT_ID}/nomulus=gcr.io/${PROJECT_ID}/nomulus@${nomulus_digest}" \ - --source=. \ - --skaffold-file=release/clouddeploy/skaffold.yaml \ - --deploy-parameters="deployed_image=gcr.io/${PROJECT_ID}/nomulus@${nomulus_digest},base_image=us-docker.pkg.dev/${PROJECT_ID}/gcr.io/nomulus" # Check for a proxy release tag (e.g., "proxy-v1.2.3") elif [[ "${TAG_NAME}" =~ ^proxy-20[0-9]{2}[0-1][0-9][0-3][0-9]-RC[0-9]{2}$ ]]; then echo "Tag format matches a proxy release. Triggering proxy build..." From 6a7901f899149fb28fb5e66584bf88612df749aa Mon Sep 17 00:00:00 2001 From: Juan Celhay Date: Thu, 30 Jul 2026 13:58:18 -0400 Subject: [PATCH 4/5] flatten file path for sql jobs --- release/clouddeploy/delivery-pipeline.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/release/clouddeploy/delivery-pipeline.yaml b/release/clouddeploy/delivery-pipeline.yaml index 0d30feefee3..ac43201e5d7 100644 --- a/release/clouddeploy/delivery-pipeline.yaml +++ b/release/clouddeploy/delivery-pipeline.yaml @@ -26,7 +26,7 @@ serialPipeline: args: - "-c" - | - gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/release/cloudbuild-schema-verify-${TARGET_ID}.yaml . + gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/cloudbuild-schema-verify-${TARGET_ID}.yaml . gcloud builds submit --config=cloudbuild-schema-verify-${TARGET_ID}.yaml analysis: # 10 minutes. @@ -70,7 +70,7 @@ serialPipeline: args: - "-c" - | - gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/release/cloudbuild-schema-deploy-${TARGET_ID}.yaml . + gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/cloudbuild-schema-deploy-${TARGET_ID}.yaml . gcloud builds submit --config=cloudbuild-schema-deploy-${TARGET_ID}.yaml analysis: # 10 minutes. @@ -98,7 +98,7 @@ serialPipeline: args: - "-c" - | - gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/release/cloudbuild-schema-verify-${TARGET_ID}.yaml . + gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/cloudbuild-schema-verify-${TARGET_ID}.yaml . gcloud builds submit --config=cloudbuild-schema-verify-${TARGET_ID}.yaml analysis: # 10 minutes. @@ -142,7 +142,7 @@ serialPipeline: args: - "-c" - | - gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/release/cloudbuild-schema-deploy-${TARGET_ID}.yaml . + gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/cloudbuild-schema-deploy-${TARGET_ID}.yaml . gcloud builds submit --config=cloudbuild-schema-deploy-${TARGET_ID}.yaml analysis: # 10 minutes. From f0b030ddd5143e6314bd256091a11ceffe4666f6 Mon Sep 17 00:00:00 2001 From: Juan Celhay Date: Thu, 30 Jul 2026 14:47:28 -0400 Subject: [PATCH 5/5] no source to sql command --- release/clouddeploy/delivery-pipeline.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/release/clouddeploy/delivery-pipeline.yaml b/release/clouddeploy/delivery-pipeline.yaml index ac43201e5d7..b4b698aee94 100644 --- a/release/clouddeploy/delivery-pipeline.yaml +++ b/release/clouddeploy/delivery-pipeline.yaml @@ -27,7 +27,7 @@ serialPipeline: - "-c" - | gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/cloudbuild-schema-verify-${TARGET_ID}.yaml . - gcloud builds submit --config=cloudbuild-schema-verify-${TARGET_ID}.yaml + gcloud builds submit --no-source --config=cloudbuild-schema-verify-${TARGET_ID}.yaml analysis: # 10 minutes. duration: 600s @@ -71,7 +71,7 @@ serialPipeline: - "-c" - | gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/cloudbuild-schema-deploy-${TARGET_ID}.yaml . - gcloud builds submit --config=cloudbuild-schema-deploy-${TARGET_ID}.yaml + gcloud builds submit --no-source --config=cloudbuild-schema-deploy-${TARGET_ID}.yaml analysis: # 10 minutes. duration: 600s @@ -99,7 +99,7 @@ serialPipeline: - "-c" - | gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/cloudbuild-schema-verify-${TARGET_ID}.yaml . - gcloud builds submit --config=cloudbuild-schema-verify-${TARGET_ID}.yaml + gcloud builds submit --no-source --config=cloudbuild-schema-verify-${TARGET_ID}.yaml analysis: # 10 minutes. duration: 600s @@ -143,7 +143,7 @@ serialPipeline: - "-c" - | gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/cloudbuild-schema-deploy-${TARGET_ID}.yaml . - gcloud builds submit --config=cloudbuild-schema-deploy-${TARGET_ID}.yaml + gcloud builds submit --no-source --config=cloudbuild-schema-deploy-${TARGET_ID}.yaml analysis: # 10 minutes. duration: 600s