blob: 130a35200ebd74345442b749151303e90c47bf6a [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 [OPTIONS] [exp|dev|staging|prod] [IDTOKEN]
Run the screentest check against a live instance of the given environment.
These tests will only pass against staging and prod.
If IDTOKEN is omitted, it is read from the file _ID_TOKEN.
Options:
-neverfail
Do not return a non-zero exit code, even if the screentests fail.
This causes Cloud Build to upload screentest results for debugging.
It should never be used as part of a normal deployment.
EOUSAGE
exit 1
}
main() {
if [[ $# = 0 ]]; then
usage
fi
neverfail=false
if [[ $1 = -neverfail ]]; then
neverfail=true
shift
fi
local env=$1
local idtoken=$2
check_env $env
if [ -z $idtoken ]; then
idtoken=$(cat _ID_TOKEN)
fi
./tests/screentest/run.sh -idtoken $idtoken -concurrency 1 $env || $neverfail
# If the tests passed, the tests/screentest/output directory will be empty.
# That causes the "artifacts" part of deploy.yaml to fail, because Cloud Build
# can't find any files there to upload. So create something there.
outdir=tests/screentest/output
if [[ ! -d $outdir ]]; then
mkdir -p $outdir/testcases
touch $outdir/success
touch $outdir/testcases/success
fi
}
main $@