From 79e0d26eb4799355332da0a34f4500f45a15d996 Mon Sep 17 00:00:00 2001 From: Dan Field Date: Mon, 26 Apr 2021 22:09:02 -0700 Subject: [PATCH] Get FTL test running again (#25771) --- ci/firebase_testlab.sh | 20 +++---------------- .../android/app/src/main/AndroidManifest.xml | 5 ----- testing/scenario_app/android/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- testing/scenario_app/assemble_apk.sh | 6 +++++- testing/scenario_app/compile_android_aot.sh | 12 ++++++++--- 6 files changed, 19 insertions(+), 28 deletions(-) diff --git a/ci/firebase_testlab.sh b/ci/firebase_testlab.sh index 45631d9bfd02..d5bcf356a9d0 100755 --- a/ci/firebase_testlab.sh +++ b/ci/firebase_testlab.sh @@ -18,22 +18,7 @@ if [[ ! -f "$APP" ]]; then 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 +BUILD_ID="${3:-$SWARMING_TASK_ID}" # Run the test. # game-loop tests are meant for OpenGL apps. @@ -46,4 +31,5 @@ gcloud --project flutter-infra firebase test android run \ --timeout 2m \ --results-bucket=gs://flutter_firebase_testlab \ --results-dir="engine_scenario_test/$GIT_REVISION/$BUILD_ID" \ - --no-auto-google-login + # Pixel 4. As of this commit, this is a highly available device in FTL. + --device model=flame,version=29 diff --git a/testing/scenario_app/android/app/src/main/AndroidManifest.xml b/testing/scenario_app/android/app/src/main/AndroidManifest.xml index 642450cd3bc2..742f07037e2f 100644 --- a/testing/scenario_app/android/app/src/main/AndroidManifest.xml +++ b/testing/scenario_app/android/app/src/main/AndroidManifest.xml @@ -33,11 +33,6 @@ android:launchMode="singleTop" android:windowSoftInputMode="adjustResize" android:theme="@style/FullScreenScreenshot"> - - - - - diff --git a/testing/scenario_app/android/build.gradle b/testing/scenario_app/android/build.gradle index 11451c5bbf29..205e758b64bf 100644 --- a/testing/scenario_app/android/build.gradle +++ b/testing/scenario_app/android/build.gradle @@ -6,7 +6,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.6.0' + classpath 'com.android.tools.build:gradle:4.1.0' classpath 'com.facebook.testing.screenshot:plugin:0.12.0' // NOTE: Do not place your application dependencies here; they belong diff --git a/testing/scenario_app/android/gradle/wrapper/gradle-wrapper.properties b/testing/scenario_app/android/gradle/wrapper/gradle-wrapper.properties index 69552ffd11c5..37c1aa69ad8a 100644 --- a/testing/scenario_app/android/gradle/wrapper/gradle-wrapper.properties +++ b/testing/scenario_app/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip diff --git a/testing/scenario_app/assemble_apk.sh b/testing/scenario_app/assemble_apk.sh index 028d571c7f04..13376c5c0b43 100755 --- a/testing/scenario_app/assemble_apk.sh +++ b/testing/scenario_app/assemble_apk.sh @@ -28,7 +28,7 @@ SRC_DIR="$(cd "$SCRIPT_DIR/../../.."; pwd -P)" export ANDROID_HOME="$SRC_DIR/third_party/android_tools/sdk" "$SRC_DIR/flutter/tools/gn" --unopt -autoninja -C "$SRC_DIR/out/host_debug_unopt" sky_engine sky_services +ninja -C "$SRC_DIR/out/host_debug_unopt" sky_engine sky_services -j 400 "$SCRIPT_DIR/compile_android_aot.sh" "$1" "$2" @@ -36,3 +36,7 @@ autoninja -C "$SRC_DIR/out/host_debug_unopt" sky_engine sky_services cd "$SCRIPT_DIR/android" ./gradlew assembleDebug --no-daemon ) + +# LUCI expects to find the APK here +mkdir -p "$SCRIPT_DIR/android/app/build/outputs/apk/debug" +cp "$SCRIPT_DIR/build/app/outputs/apk/debug/app-debug.apk" "$SCRIPT_DIR/android/app/build/outputs/apk/debug" diff --git a/testing/scenario_app/compile_android_aot.sh b/testing/scenario_app/compile_android_aot.sh index 7e8c31cdb9e3..01f1b039fc64 100755 --- a/testing/scenario_app/compile_android_aot.sh +++ b/testing/scenario_app/compile_android_aot.sh @@ -41,7 +41,7 @@ fi if [[ ! -d "$DEVICE_TOOLS" ]]; then echo "Directory $DEVICE_TOOLS not found." - ehco "Second argument must specify the device out directory containing gen_snapshot (e.g. out/android_debug_unopt_x64/clang_x64)." + echo "Second argument must specify the device out directory containing gen_snapshot (e.g. out/android_debug_unopt_x64/clang_x64)." exit 1 fi @@ -61,16 +61,22 @@ mkdir -p "$OUTDIR" echo "Compiling kernel..." +# --disable-dart-dev: No need for observatory/DDS. +# --no-print-incremental-dependencies: Avoid printing out a lot of verbosity that doesn't help this test. "$HOST_TOOLS/dart" \ + --disable-dart-dev \ "$HOST_TOOLS/gen/frontend_server.dart.snapshot" \ --sdk-root "$HOST_TOOLS/flutter_patched_sdk" \ - --aot --tfa --target=flutter \ + --target=flutter \ + --no-print-incremental-dependencies \ + --aot \ + --tfa \ --output-dill "$OUTDIR/app.dill" \ "$SCRIPT_DIR/lib/main.dart" echo "Compiling ELF Shared Library..." -"$HOST_TOOLS/gen_snapshot" --deterministic --snapshot_kind=app-aot-elf --elf="$OUTDIR/libapp.so" --strip "$OUTDIR/app.dill" +"$DEVICE_TOOLS/gen_snapshot" --deterministic --snapshot_kind=app-aot-elf --elf="$OUTDIR/libapp.so" --strip "$OUTDIR/app.dill" mkdir -p "$SCRIPT_DIR/android/app/src/main/jniLibs/arm64-v8a" mkdir -p "$SCRIPT_DIR/android/app/libs"