| #!/bin/bash |
| |
| # 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. |
| |
| # Deploy the vuln worker to Cloud Run, using Cloud Build. |
| |
| set -e |
| |
| source devtools/lib.sh || { echo "Are you at repo root?"; exit 1; } |
| |
| # Report whether the current repo's workspace has no uncommitted files. |
| clean_workspace() { |
| [[ $(git status --porcelain) == '' ]] |
| } |
| |
| main() { |
| local prefix= |
| if [[ $1 = '-n' ]]; then |
| prefix='echo dryrun: ' |
| shift |
| fi |
| |
| local env=$1 |
| |
| case $env in |
| dev|prod);; |
| *) |
| die "usage: $0 [-n] (dev | prod)" |
| esac |
| |
| local project=$(tfvar ${env}_project) |
| local commit=$(git rev-parse --short HEAD) |
| local unclean |
| if ! clean_workspace; then |
| unclean="-unclean" |
| fi |
| |
| $prefix gcloud builds submit \ |
| --project $project \ |
| --config deploy/worker.yaml \ |
| --substitutions SHORT_SHA=${commit}${unclean},_ENV=$env |
| } |
| |
| main $@ |