| #!/bin/bash |
| # |
| # Copyright 2013 The Flutter Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| set -e |
| |
| APP="$1" |
| if [[ -z "$APP" ]]; then |
| echo "Application must be specified as the first argument to the script." |
| exit 255 |
| fi |
| |
| if [[ ! -f "$APP" ]]; then |
| echo "File '$APP' not found." |
| exit 255 |
| fi |
| |
| GIT_REVISION="${2:-$(git rev-parse HEAD)}" |
| BUILD_ID="${3:-$CIRRUS_BUILD_ID}" |
| |
| if [[ -n $GCLOUD_FIREBASE_TESTLAB_KEY ]]; then |
| # New contributors will not have permissions to run this test - they won't be |
| # able to access the service account information. We should just mark the test |
| # as passed - it will run fine on post submit, where it will still catch |
| # failures. |
| # We can also still make sure that building a release app bundle still works. |
| if [[ $GCLOUD_FIREBASE_TESTLAB_KEY == ENCRYPTED* ]]; then |
| echo "This user does not have permission to run this test." |
| exit 0 |
| fi |
| |
| echo "$GCLOUD_FIREBASE_TESTLAB_KEY" > "${HOME}/gcloud-service-key.json" |
| gcloud auth activate-service-account --key-file="${HOME}/gcloud-service-key.json" |
| fi |
| |
| # Run the test. |
| # game-loop tests are meant for OpenGL apps. |
| # This type of test will give the application a handle to a file, and |
| # we'll write the timeline JSON to that file. |
| # See https://firebase.google.com/docs/test-lab/android/game-loop |
| gcloud --project flutter-infra firebase test android run \ |
| --type game-loop \ |
| --app "$APP" \ |
| --timeout 2m \ |
| --results-bucket=gs://flutter_firebase_testlab \ |
| --results-dir="engine_scenario_test/$GIT_REVISION/$BUILD_ID" \ |
| --no-auto-google-login |