blob: 20d04cc616aaac1450ae1f1daea015d169d6c344 [file] [log] [blame]
#!/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|beta] 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."
if [[ $env == "beta" ]]; then
curl -H "$hdr" $(worker_url prod)/clear-beta-cache
else
curl -H "$hdr" $(worker_url $env)/clear-cache
fi
info "Running warmups."
private/devtools/warmups.sh $env $tok
}
main $@