aa-integration-backend/terraform_cloudbuild.yaml (74 lines of code) (raw):

# Copyright 2025 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # An example of Cloud Build configuration file with Terraform for CI/CD pipeline. steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/$PROJECT_ID/aa-integration-backend/ui-connector-$BRANCH_NAME:$SHORT_SHA', './aa-integration-backend/ui-connector'] - name: 'gcr.io/cloud-builders/docker' args: ['push', 'gcr.io/$PROJECT_ID/aa-integration-backend/ui-connector-$BRANCH_NAME:$SHORT_SHA'] - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/$PROJECT_ID/aa-integration-backend/cloud-pubsub-interceptor-$BRANCH_NAME:$SHORT_SHA', './aa-integration-backend/cloud-pubsub-interceptor'] - name: 'gcr.io/cloud-builders/docker' args: ['push', 'gcr.io/$PROJECT_ID/aa-integration-backend/cloud-pubsub-interceptor-$BRANCH_NAME:$SHORT_SHA'] - id: 'branch name' name: 'alpine' entrypoint: 'sh' args: - '-c' - | echo "***********************" echo "$BRANCH_NAME" echo "***********************" - id: 'tf init' name: 'hashicorp/terraform:1.0.0' entrypoint: 'sh' args: - '-c' - | cd ./aa-integration-backend/terraform echo "" echo "*************** TERRAFORM INIT ******************" tf_state_bucket="$PROJECT_ID-tfstate" terraform init \ -backend-config="bucket=$tf_state_bucket" \ -backend-config="prefix=$BRANCH_NAME" || exit 1 cd ../../ - id: 'tf plan' name: 'hashicorp/terraform:1.0.0' entrypoint: 'sh' args: - '-c' - | cd ./aa-integration-backend/terraform echo "" echo "*************** TERRAFOM PLAN ******************" terraform plan -var="gcp_project_id=$PROJECT_ID" \ -var="ui_connector_docker_image=gcr.io/$PROJECT_ID/aa-integration-backend/ui-connector-$BRANCH_NAME:$SHORT_SHA" \ -var="cloud_pubsub_interceptor_docker_image=gcr.io/$PROJECT_ID/aa-integration-backend/cloud-pubsub-interceptor-$BRANCH_NAME:$SHORT_SHA" \ -var="connector_service_name=ui-connector-$BRANCH_NAME" \ -var="interceptor_service_name=cloud-pubsub-interceptor-$BRANCH_NAME" \ || exit 1 cd ../../ - id: 'tf apply' name: 'hashicorp/terraform:1.0.0' entrypoint: 'sh' args: - '-c' - | cd ./aa-integration-backend/terraform echo "" echo "*************** TERRAFOM APPLYING ******************" auth_option="" if [ $BRANCH_NAME != 'main' ]; then auth_option="Skip" fi terraform apply -auto-approve \ -var="gcp_project_id=$PROJECT_ID" \ -var="ui_connector_docker_image=gcr.io/$PROJECT_ID/aa-integration-backend/ui-connector-$BRANCH_NAME:$SHORT_SHA" \ -var="cloud_pubsub_interceptor_docker_image=gcr.io/$PROJECT_ID/aa-integration-backend/cloud-pubsub-interceptor-$BRANCH_NAME:$SHORT_SHA" \ -var="connector_service_name=ui-connector-$BRANCH_NAME" \ -var="interceptor_service_name=cloud-pubsub-interceptor-$BRANCH_NAME" \ -var="redis_instance_id=aa-integration-redis-$BRANCH_NAME" \ -var="agent_assist_notifications_subscription_id=aa-new-suggestion-sub-$BRANCH_NAME" \ -var="new_message_notifications_subscription_id=aa-new-message-sub-$BRANCH_NAME" \ -var="conversation_lifecycle_notifications_subscription_id=aa-conversation-event-sub-$BRANCH_NAME" \ -var="new_recognition_result_notification_subscription_id=aa-intermediate-transcript-event-sub-$BRANCH_NAME" \ -var="auth_option=$auth_option" cd ../../