Run all androidTest on CI

Change-Id: I2195490caf699115aa57983741cd4aacb833ea91
pull/2/head
Alex Vanyo 2 years ago committed by Don Turner
parent b5d7832549
commit 988659855f

@ -44,31 +44,54 @@ export JAVA_HOME=
./gradlew "${GRADLE_FLAGS[@]}" build
# For Firebase Test Lab
./gradlew app:assembleAndroidTest
./gradlew app:assembleDebug
./gradlew assembleAndroidTest
./gradlew 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.
## FTL requires a normal apk, even though we don't need or have any for library modules
## For now, just pass in the main app apk
set +e # To not exit on an error to retry flaky tests
local counter=0
local result=1
local module=$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 \
--app "app/build/outputs/apk/debug/app-debug.apk" \
--test "$module/build/outputs/apk/androidTest/debug/$module-debug-androidTest.apk" \
--device-ids $deviceIds \
--os-version-ids $osVersionIds \
--locales en \
--timeout 60
--timeout 300
result=$? ;
let counter=counter+1
done
return $result
}
run_firebase_test_lab
exit $?
# All modules with androidTest to run tests on.
# This command will create a list like ["app", "sync"] based on which subdirectories
# (assumed to be modules) have an androidTest source directory.
# The sed regex pulls out the module name from the matched directory
modules=($(find . -regex ".*/src/androidTest" | sed -E 's|\./([^/]*)/.*|\1|g'))
# Run all modules in parallel with Firebase Test Lab, and fail if any fail
pids=""
result=0
for module in ${modules[@]}; do
run_firebase_test_lab $module &
pids="$pids $!"
done
for pid in ${pids[@]}; do
wait $pid || let "result=1"
done
exit $result

Loading…
Cancel
Save