[NiA] Run instrumented tests on Firebase Test Lab

Change-Id: I7f69fb9ad013e1411cf97a90c778cda138f792e2
pull/2/head
Jolanda Verhoef 3 years ago
parent e28c196a6d
commit 83429ad3a3

@ -20,6 +20,9 @@ set -e
# Display commands to stderr.
set -x
deviceIds=${1:-'Nexus5,Pixel2,Pixel3'}
osVersionIds=${2:-'23,27,30'}
GRADLE_FLAGS=()
if [[ -n "$GRADLE_DEBUG" ]]; then
GRADLE_FLAGS=( --debug --stacktrace )
@ -41,4 +44,32 @@ export JAVA_HOME=
./gradlew "${GRADLE_FLAGS[@]}" build
# For Firebase Test Lab
./gradlew app:assembleAndroidTest
./gradlew app:assembleDebug
MAX_RETRY=3
run_firebase_test_lab() {
## Retry can be done by passing the --num-flaky-test-attempts to gcloud, but gcloud SDK in the
## kokoro server doesn't support it yet.
set +e # To not exit on an error to retry flaky tests
local counter=0
local result=1
while [ $result != 0 -a $counter -lt $MAX_RETRY ]; do
gcloud firebase test android run \
--type instrumentation \
--app app/build/outputs/apk/debug/app-debug.apk \
--test app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk \
--device-ids $deviceIds \
--os-version-ids $osVersionIds \
--locales en \
--timeout 60
result=$? ;
let counter=counter+1
done
return $result
}
run_firebase_test_lab
exit $?

@ -0,0 +1,2 @@
# Location of the bash script.
build_file: "nowinandroid/kokoro/nightly.sh"

@ -0,0 +1,32 @@
#!/bin/bash
# Copyright 2021 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Fail on any error.
set -e
# Display commands to stderr.
set -x
# Run the normal build, but replace the default virtual devices with physical ones.
# hammerhead | Nexus 5 | API 23 | Phone
# walleye | Pixel 2 | API 27 | Phone
# gts4lltevzw | Galaxy Tab S4 | API 28 | Tablet
# a10 | Samsung A10 | API 29 | Phone
# redfin | Pixel 5e | API 30 | Phone
# oriole | Pixel 6 | API 31 | Phone
bash build.sh "hammerhead,walleye,gts4lltevzw,a10,redfin,oriole" "23,27,28,29,30,31"
exit $?
Loading…
Cancel
Save