| #!/bin/bash |
| |
| set -e |
| |
| if [[ ! -f $1 ]]; then |
| echo "File $1 not found." |
| exit -1 |
| fi |
| |
| GIT_REVISION=${2:-$(git rev-parse HEAD)} |
| BUILD_ID=${3:-$CIRRUS_BUILD_ID} |
| |
| if [[ ! -z $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 $1 \ |
| --timeout 2m \ |
| --results-bucket=gs://flutter_firebase_testlab \ |
| --results-dir=engine_scenario_test/$GIT_REVISION/$BUILD_ID \ |
| --no-auto-google-login |