cloud-run/cloudbuild.yaml (42 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 # # http://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: 'Build Container Image' name: 'gcr.io/cloud-builders/docker:latest' dir: 'app' args: ['build', '-t', 'gcr.io/${PROJECT_ID}/${_SERVICE}', '.'] # Tag docker image with git commit sha - id: 'Push Container Image' name: 'gcr.io/cloud-builders/docker:latest' args: ['push', 'gcr.io/${PROJECT_ID}/${_SERVICE}'] - id: 'Deploy to Cloud Run' name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: gcloud args: ['run', 'deploy', '${_SERVICE}', '--image', 'gcr.io/${PROJECT_ID}/${_SERVICE}', '--region', '${_REGION}', '--no-allow-unauthenticated'] - name: 'gcr.io/cloud-builders/gcloud' id: variables entrypoint: 'bash' args: - -c - | export build_token=\"$(gcloud auth application-default \ print-access-token)\" # write all "build_" variables to the persistent volume "/workspace" env | grep "^build_" > /workspace/build_vars gcloud run services describe ${_SERVICE} --region=${_REGION} --format 'value(status.url)' > /workspace/cloudrunendpoint gcloud iam service-accounts create run-mock-target-sa \ --project "$PROJECT_ID" || true gcloud run services add-iam-policy-binding ${_SERVICE} \ --region ${_REGION} \ --member serviceAccount:run-mock-target-sa@"$PROJECT_ID".iam.gserviceaccount.com \ --role roles/run.invoker \ --platform managed - name: 'gcr.io/cloud-builders/mvn' id: "Package bundle" entrypoint: 'bash' args: - -c - | target_url=$(cat /workspace/cloudrunendpoint) sed -i "s|@TARGETURL@|$target_url|" ./apiproxy/targets/default.xml mvn -f pom.xml -ntp process-resources apigee-enterprise:configure \ -Pdev -DgoogleTokenEmail=run-mock-target-sa@$PROJECT_ID.iam.gserviceaccount.com -Dorg=$PROJECT_ID -Denv=$_APIGEE_TEST_ENV - name: 'gcr.io/cloud-builders/mvn' id: "Deploy bundle" entrypoint: 'bash' args: - -c - | # Read environment variables from disk source /workspace/build_vars && mvn -f pom.xml -ntp apigee-enterprise:deploy -Pdev -Dorg=$PROJECT_ID \ -DgoogleTokenEmail=run-mock-target-sa@$PROJECT_ID.iam.gserviceaccount.com -Denv=$_APIGEE_TEST_ENV -Dbearer=${build_token}