gcloud-report/tests.cloudbuild.yaml (77 lines of code) (raw):

steps: # TODO(#67): Need golang+gcloud container. # - id: 'System & Unit Tests' # name: 'golang:1.15' # dir: '${_SAMPLE_DIR}' # args: ['go', 'test', '-v', '.'] # env: # - "GCLOUD_REPORT_BUCKET=${_BUCKET}" - id: "Build Container Image" name: "gcr.io/cloud-builders/docker:latest" dir: "${_SAMPLE_DIR}" args: [ "build", "-t", "${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_REPO_NAME}/${_SERVICE}:${SHORT_SHA}", ".", ] # Tag docker image with git commit sha - id: "Push Container Image" name: "gcr.io/cloud-builders/docker:latest" args: [ "push", "${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_REPO_NAME}/${_SERVICE}:${SHORT_SHA}", ] - 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 '${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_REPO_NAME}/${_SERVICE}:${SHORT_SHA}' \ --update-env-vars GCLOUD_REPORT_BUCKET=${_BUCKET} \ --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 . /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}" - id: "End-to-End Tests" name: "gcr.io/google.com/cloudsdktool/cloud-sdk:$_CLOUDSDK_VERSION" entrypoint: "/bin/sh" args: - "-c" - | set -e out=$(curl -si --fail --show-error -H "Authorization: Bearer $(cat _id_token)" "$(cat _service_url)") echo "$out" obj=$(echo $out | grep -o gs://.*) echo "Downloading report ${obj} for local validation" gsutil cp $obj . cat $(basename $obj) | grep ${_SERVICE} env: - "GCLOUD_REPORT_BUCKET=${_BUCKET}" - id: "Teardown" name: "gcr.io/google.com/cloudsdktool/cloud-sdk:$_CLOUDSDK_VERSION" entrypoint: "/bin/bash" args: - "-c" - | set -x gcloud --quiet artifacts docker images delete '${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_REPO_NAME}/${_SERVICE}:${SHORT_SHA}' gcloud --quiet run services delete ${_SERVICE}-${BUILD_ID} --region ${_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: # - '${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_REPO_NAME}/${_SERVICE}:${SHORT_SHA}' options: env: - "CLOUDSDK_RUN_REGION=${_REGION}" - "GOOGLE_CLOUD_PROJECT=${PROJECT_ID}" # TODO: Update these User-defined substitutions substitutions: _SERVICE: gcloud-report _SAMPLE_DIR: gcloud-report _REPO_NAME: samples # Artifact Registry repo, "samples", was manually created _REGION: us-central1 _CLOUDSDK_VERSION: latest