| #!/usr/bin/env bash | |
| set -e | |
| # Copyright 2021 The Go Authors. All rights reserved. | |
| # Use of this source code is governed by a BSD-style | |
| # license that can be found in the LICENSE file. | |
| source private/devtools/lib.sh || { echo "Are you at repo root?"; exit 1; } | |
| usage() { | |
| >&2 cat <<EOUSAGE | |
| Usage: $0 [exp|dev|staging|prod] NAME:TAG | |
| Deploy a frontend image to Cloud Run for the given environment. | |
| EOUSAGE | |
| exit 1 | |
| } | |
| main() { | |
| local env=$1 | |
| local image=$2 | |
| check_env $env | |
| check_image $image | |
| runcmd gcloud run deploy --quiet --region us-central1 $env-frontend --image $image | |
| # If there was a rollback, `gcloud run deploy` will create a revision but | |
| # not point traffic to it. The following command ensures that the new revision | |
| # will get traffic. | |
| runcmd gcloud run services update-traffic $env-frontend --to-latest --region us-central1 | |
| local tok=$(private/devtools/idtoken.sh $env) | |
| local hdr="Authorization: Bearer $tok" | |
| info "Clearing the redis cache." | |
| curl -H "$hdr" $(worker_url $env)/clear-cache | |
| info "Running warmups." | |
| private/devtools/warmups.sh $env $tok | |
| } | |
| main $@ |