integration.cloudbuild.yaml (68 lines of code) (raw):

steps: - id: build go name: golang:${_VERSION} env: - CGO_ENABLED=0 - GOOS=linux args: [ "go", "build", "-o", "/workspace/cloudshell_open", "./cmd/cloudshell_open", ] - id: docker build name: "gcr.io/cloud-builders/docker" args: ["build", "-t", "gcr.io/$PROJECT_ID/button", "."] - id: docker push name: "gcr.io/cloud-builders/docker" args: ["push", "gcr.io/$PROJECT_ID/button"] - id: image validation name: "gcr.io/cloudshell-images/custom-image-validation" args: ["image_test.py", "--image", "gcr.io/$PROJECT_ID/button"] - id: run tests name: gcr.io/$PROJECT_ID/button env: - "DEBUG=${_DEBUG}" - "GOOGLE_CLOUD_PROJECT=$PROJECT_ID" - "GOOGLE_CLOUD_REGION=${_REGION}" - "GIT_BRANCH=${BRANCH_NAME}" - "PYTHONUNBUFFERED=true" - "TEST_CMD=python3 tests/run_integration_test.py deploy --repo_url $_REPO_URL --repo_branch $_REPO_BRANCH" script: | #!/bin/bash -e gcloud version pip3 install -r tests/requirements.txt --user $TEST_CMD --description "no config" --directory empty-appjson --expected_text 'hello, world' $TEST_CMD --description "inline hooks" --directory hooks-prepostcreate-inline --expected_text 'AB' $TEST_CMD --description "external hooks" --directory hooks-prepostcreate-external --expected_text '3' $TEST_CMD --description "external hooks, dirty" --directory hooks-prepostcreate-external --expected_text '3' --dirty $TEST_CMD --description "generator" --directory envvars-generated GEN_URL=$(gcloud run services describe envvars-generated --region $GOOGLE_CLOUD_REGION --format "value(status.url)") OUTPUT=$(curl $GEN_URL --silent) $TEST_CMD --description "generator, dirty" --directory envvars-generated --dirty --expected_text $OUTPUT $TEST_CMD --description "options" --directory options --expected_text 'hello, world' $TEST_CMD --description "options - http2" --directory options-http2 --expected_text 'hello, world' $TEST_CMD --description "options - require auth" --directory options-require-auth --expected_status 403 $TEST_CMD --description "custom buildpacks" --directory buildpacks-builder --expected_text 'hello, world' - id: cleanup name: 'gcr.io/google.com/cloudsdktool/cloud-sdk:slim' env: - "GOOGLE_CLOUD_REGION=${_REGION}" script: | #!/bin/bash -e gcloud run services list --region $GOOGLE_CLOUD_REGION for service in $(gcloud run services list --region $GOOGLE_CLOUD_REGION --format "value(name)"); do echo "🧹 Cleaning up $service" gcloud run services delete $service --region $GOOGLE_CLOUD_REGION --quiet done; timeout: "3600s" substitutions: _VERSION: "1.23" _REGION: us-central1 _REPO_URL: https://github.com/GoogleCloudPlatform/cloud-run-button _REPO_BRANCH: master _DEBUG: "" options: machineType: "N1_HIGHCPU_32" dynamicSubstitutions: true logsBucket: ${PROJECT_ID}-buildlogs