testing/cloudbuild-templates/cloud-run-template.cloudbuild.yaml (64 lines of code) (raw):

steps: - id: 'Build Container Image' name: 'gcr.io/cloud-builders/docker:latest' dir: '${_SAMPLE_DIR}' args: ['build', '-t', '${_IMAGE_NAME}', '.'] - id: 'Push Container Image' name: 'gcr.io/cloud-builders/docker:latest' args: ['push', '${_IMAGE_NAME}'] - id: 'Deploy to Cloud Run' name: 'gcr.io/google.com/cloudsdktool/cloud-sdk:$_CLOUDSDK_VERSION' entrypoint: /bin/bash args: - '-c' - | gcloud run deploy ${_SERVICE}-$BUILD_ID \ --image ${_IMAGE_NAME} \ --no-allow-unauthenticated - id: 'Get Cloud Run URL' name: 'gcr.io/google.com/cloudsdktool/cloud-sdk:$_CLOUDSDK_VERSION' entrypoint: '/bin/bash' args: - '-c' - | set -e source /workspace/testing/cloudbuild-templates/common.sh echo $(get_url ${BUILD_ID}) > _service_url echo "Cloud Run URL for ${_SERVICE}-$BUILD_ID is $(cat _service_url)" echo $(get_idtoken) > _id_token env: # Make substitutions available in shell script. - "_SECRET_NAME=${_SECRET_NAME}" - "_RUNNER_IDENTITY=${_RUNNER_IDENTITY}" - "_SERVICE=${_SERVICE}" # This does not seem like expected behavior. For example: - id: 'Integration Tests' # TODO: Update the following image name, entrypoint, and args to fit your testing needs name: 'gcr.io/cloud-builders/curl' entrypoint: '/bin/sh' args: - '-c' - | set -e curl -si --fail --show-error -H "Authorization: Bearer $(cat _id_token)" "$(cat _service_url)" - id: 'Teardown' name: 'gcr.io/google.com/cloudsdktool/cloud-sdk:$_CLOUDSDK_VERSION' entrypoint: '/bin/bash' args: - '-c' - | set -x gcloud --quiet container images delete ${_IMAGE_NAME} gcloud --quiet run services delete ${_SERVICE}-$BUILD_ID --region ${_SERVICE_REGION} set +x echo "View build details in the console: https://console.cloud.google.com/cloud-build/builds/${BUILD_ID}" # Uncomment if skipping teardown to associate build with container image. # images: # - '${_IMAGE_NAME}' options: env: - "CLOUDSDK_RUN_REGION=${_SERVICE_REGION}" - "GOOGLE_CLOUD_PROJECT=${PROJECT_ID}" dynamicSubstitutions: true # TODO: Update these User-defined substitutions substitutions: _SERVICE: SERVICE_NAME_PREFIX _SAMPLE_DIR: SAMPLE_DIRECTORY _SERVICE_REGION: us-central1 _CLOUDSDK_VERSION: latest _AR_REPO_NAME: samples _AR_REGION_NAME: us-central1 _IMAGE_NAME: ${_AR_REPO_REGION}-docker.pkg.dev/${PROJECT_ID}/${_AR_REPO_NAME}/${_SERVICE}:${SHORT_SHA} # Tag docker image with git commit sha