Files
coco 723ce1af5c a
2026-07-03 15:12:48 +08:00

86 lines
2.7 KiB
Bash

#!/bin/bash
# Copyright 2018 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
GRADLE_FLAGS=()
if [[ -n "$GRADLE_DEBUG" ]]; then
GRADLE_FLAGS=( --debug --stacktrace )
fi
# Workaround of b/123314680
# We need to update the required dependencies since the Kokoro team stopped updating the custom VM.
export ANDROID_HOME=/opt/android-sdk/current
echo "Installing build-tools..."
echo y | ${ANDROID_HOME}/tools/bin/sdkmanager "build-tools;30.0.3" > /dev/null
echo y | ${ANDROID_HOME}/tools/bin/sdkmanager --licenses
# Workaround for b/148189425
# AGP requires a specific NDK version for running Gradle
echo "Installing NDK that matches the current version of AGP ..."
echo y | ${ANDROID_HOME}/tools/bin/sdkmanager "ndk;21.0.6113669" > /dev/null
cd $KOKORO_ARTIFACTS_DIR/git/iosched
# Use Java 11 (b/181627163)
# This needs to be set after sdkmanager runs, as sdkmanager errors using Java 11
export JAVA_HOME=${KOKORO_GFILE_DIR}
export PATH="$JAVA_HOME/bin:$PATH"
$JAVA_HOME/bin/javac -version
./gradlew "${GRADLE_FLAGS[@]}" build
# For Firebase Test Lab
SERVICE_ACCOUNT_KEY=${KOKORO_GFILE_DIR}/events-dev-62d2e-072ce72b3067.json
gcloud config set project events-dev-62d2e
gcloud auth activate-service-account firebasetestlabforkokoro@events-dev-62d2e.iam.gserviceaccount.com --key-file ${SERVICE_ACCOUNT_KEY}
./gradlew mobile:assembleAndroidTest
./gradlew mobile:assembleStaging
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
## TODO: Add os-version 29 once it's available
gcloud firebase test android run \
--type instrumentation \
--app mobile/build/outputs/apk/staging/mobile-staging.apk \
--test mobile/build/outputs/apk/androidTest/staging/mobile-staging-androidTest.apk \
--device-ids hammerhead,walleye,blueline \
--os-version-ids 21,26,28 \
--locales en \
--timeout 60
result=$? ;
let counter=counter+1
done
return $result
}
run_firebase_test_lab
exit $?