replicating-databases-bigquery/cloudbuild.yaml (41 lines of code) (raw):

# Copyright 2023 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. steps: - id: 'tf init' name: 'hashicorp/terraform:1.0.0' entrypoint: 'sh' args: - '-c' - | terraform init \ -backend-config="bucket=$PROJECT_ID-tf-state" \ -backend-config="prefix=replicating-databases-bigquery" dir: terraform - id: 'tf apply' name: 'hashicorp/terraform:1.0.0' args: - apply - -auto-approve dir: terraform - id: 'upload data' name: 'gcr.io/cloud-builders/gcloud-slim' entrypoint: 'sh' args: - '-c' - | export DATABASE_INSTANCE=$(gcloud sql instances list --format='value(name)' --filter='labels.solution:replicating-databases-bigquery') export SERVICE_ACCOUNT=$(gcloud sql instances describe $$DATABASE_INSTANCE --format='value(serviceAccountEmailAddress)') gsutil mb gs://$PROJECT_ID-sqlbackup gsutil cp schema.sql gs://$PROJECT_ID-sqlbackup gsutil iam ch serviceAccount:$$SERVICE_ACCOUNT:objectAdmin gs://$PROJECT_ID-sqlbackup gcloud sql import sql $$DATABASE_INSTANCE gs://$PROJECT_ID-sqlbackup/schema.sql -q gsutil rm gs://$PROJECT_ID-sqlbackup/schema.sql gsutil rb gs://$PROJECT_ID-sqlbackup dir: sql options: env: - TF_VAR_project_id=$PROJECT_ID - TF_VAR_project_number=$PROJECT_NUMBER timeout: 3600s tags: - terraform - datastream - apply