From 68b926ecd04c5cf307b46e327f78fa5cb2f96c9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Alc=C3=A9rreca?= Date: Fri, 13 Oct 2017 18:33:21 +0200 Subject: [PATCH 1/9] Adds CircleCI + FTL script --- circle.yml | 21 +++++++++++++++++++++ test_all_ftl.sh | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 circle.yml create mode 100755 test_all_ftl.sh diff --git a/circle.yml b/circle.yml new file mode 100644 index 000000000..a99ac5e59 --- /dev/null +++ b/circle.yml @@ -0,0 +1,21 @@ +machine: + java: + version: oraclejdk8 + environment: + GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx1024m -XX:+HeapDumpOnOutOfMemoryError" -Dkotlin.compiler.execution.strategy="out-of-process" -Djava.util.concurrent.ForkJoinPool.common.parallelism=2' + +dependencies: + pre: + - sudo pip install -U crcmod + - echo y | android update sdk --no-ui --all --filter "tools,platform-tools,build-tools-26.0.2,android-26,extra-android-m2repository" + - echo ${GCLOUD_SERVICE_KEY} | base64 --decode > ${HOME}/client-secret.json + - sudo /opt/google-cloud-sdk/bin/gcloud config set project android-devrel-ci + - sudo /opt/google-cloud-sdk/bin/gcloud --quiet components update + - sudo /opt/google-cloud-sdk/bin/gcloud auth activate-service-account travis-ci-for-blueprints@android-devrel-ci.iam.gserviceaccount.com --key-file ${HOME}/client-secret.json + +test: + override: + - ./test_all_ftl.sh + post: + - mkdir -p $CIRCLE_TEST_REPORTS/junit/ + - find $CIRCLE_ARTIFACTS -name \*.xml -exec cp {} $CIRCLE_TEST_REPORTS/junit/ \; diff --git a/test_all_ftl.sh b/test_all_ftl.sh new file mode 100755 index 000000000..25d41e6f6 --- /dev/null +++ b/test_all_ftl.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +set -e # Exit immediately if a command exits with a non-zero status. + +for line in $(find . -name 'gradlew'); do + p=$(dirname "${line}"); + name="${p##*/}"; + echo + echo + echo Running unit and Android tests in $name + echo "=====================================================================" + + pushd $p > /dev/null # Silent pushd + ./gradlew :app:assembleDebug -PdisablePreDex | sed "s@^@$name @" # Prefix every line with directory + code=${PIPESTATUS[0]} + if [ "$code" -ne "0" ]; then + exit $code + fi + + ./gradlew :app:assembleAndroidTest -PdisablePreDex | sed "s@^@$name @" # Prefix every line with directory + ./gradlew test -PdisablePreDex | sed "s@^@$name @" # Prefix every line with directory + + apkfile=app/build/outputs/apk/debug/app-debug.apk + testapkfile=app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk + if [ ! -f $apkfile ] || [ ! -f $testapkfile ] ; then + echo "APKs not found, probably due to project using multiple flavors. Skipping $name" + popd > /dev/null # Silent popd + continue + fi + echo "Sending APKs to Firebase..." + echo "y" | sudo /opt/google-cloud-sdk/bin/gcloud firebase test android run --app $apkfile --test $testapkfile -d Nexus5X -v 26 -l fr --results-bucket=android-testing-samples-test-results --results-dir=$CIRCLE_BUILD_NUM/$name + + code=${PIPESTATUS[0]} + if [ "$code" -ne "0" ]; then + exit $code + fi + + # Copy the test results to the build artifacts folder in CircleCI + sudo /opt/google-cloud-sdk/bin/gsutil -m cp -r -U `sudo /opt/google-cloud-sdk/bin/gsutil ls gs://android-testing-samples-test-results/$CIRCLE_BUILD_NUM/$name/**/test_result*.xml | tail -1` $CIRCLE_ARTIFACTS/ | true + popd > /dev/null # Silent popd +done + +echo +echo "ALL TESTS PASS" From 5119cab10c0eafa20121fdad33d0e9308f1b8c4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Alc=C3=A9rreca?= Date: Fri, 13 Oct 2017 18:44:46 +0200 Subject: [PATCH 2/9] Updates to build tools and supporlib 26.x --- integration/ServiceTestRuleSample/build.gradle | 4 ++-- runner/AndroidJunitRunnerSample/build.gradle | 4 ++-- ui/espresso/BasicSample/build.gradle | 4 ++-- ui/espresso/CustomMatcherSample/build.gradle | 4 ++-- ui/espresso/DataAdapterSample/build.gradle | 4 ++-- ui/espresso/IdlingResourceSample/build.gradle | 4 ++-- ui/espresso/IntentsAdvancedSample/build.gradle | 4 ++-- ui/espresso/IntentsBasicSample/build.gradle | 4 ++-- ui/espresso/MultiWindowSample/build.gradle | 4 ++-- ui/espresso/RecyclerViewSample/build.gradle | 4 ++-- ui/espresso/WebBasicSample/build.gradle | 4 ++-- ui/uiautomator/BasicSample/build.gradle | 4 ++-- unit/BasicSample/build.gradle | 2 +- unit/BasicUnitAndroidTest/build.gradle | 4 ++-- 14 files changed, 27 insertions(+), 27 deletions(-) diff --git a/integration/ServiceTestRuleSample/build.gradle b/integration/ServiceTestRuleSample/build.gradle index 201fef834..1de6011cc 100644 --- a/integration/ServiceTestRuleSample/build.gradle +++ b/integration/ServiceTestRuleSample/build.gradle @@ -25,8 +25,8 @@ allprojects { } ext { - buildToolsVersion = "25.0.0" - supportLibVersion = "25.4.0" + buildToolsVersion = "26.0.2" + supportLibVersion = "26.1.0" runnerVersion = "1.0.0" rulesVersion = "1.0.0" } diff --git a/runner/AndroidJunitRunnerSample/build.gradle b/runner/AndroidJunitRunnerSample/build.gradle index d6680037b..1e8252ab4 100644 --- a/runner/AndroidJunitRunnerSample/build.gradle +++ b/runner/AndroidJunitRunnerSample/build.gradle @@ -25,8 +25,8 @@ allprojects { } ext { - buildToolsVersion = "25.0.0" - supportLibVersion = "25.4.0" + buildToolsVersion = "26.0.2" + supportLibVersion = "26.1.0" runnerVersion = "1.0.0" rulesVersion = "1.0.0" espressoVersion = "3.0.0" diff --git a/ui/espresso/BasicSample/build.gradle b/ui/espresso/BasicSample/build.gradle index d6680037b..1e8252ab4 100644 --- a/ui/espresso/BasicSample/build.gradle +++ b/ui/espresso/BasicSample/build.gradle @@ -25,8 +25,8 @@ allprojects { } ext { - buildToolsVersion = "25.0.0" - supportLibVersion = "25.4.0" + buildToolsVersion = "26.0.2" + supportLibVersion = "26.1.0" runnerVersion = "1.0.0" rulesVersion = "1.0.0" espressoVersion = "3.0.0" diff --git a/ui/espresso/CustomMatcherSample/build.gradle b/ui/espresso/CustomMatcherSample/build.gradle index d6680037b..1e8252ab4 100644 --- a/ui/espresso/CustomMatcherSample/build.gradle +++ b/ui/espresso/CustomMatcherSample/build.gradle @@ -25,8 +25,8 @@ allprojects { } ext { - buildToolsVersion = "25.0.0" - supportLibVersion = "25.4.0" + buildToolsVersion = "26.0.2" + supportLibVersion = "26.1.0" runnerVersion = "1.0.0" rulesVersion = "1.0.0" espressoVersion = "3.0.0" diff --git a/ui/espresso/DataAdapterSample/build.gradle b/ui/espresso/DataAdapterSample/build.gradle index d6680037b..1e8252ab4 100644 --- a/ui/espresso/DataAdapterSample/build.gradle +++ b/ui/espresso/DataAdapterSample/build.gradle @@ -25,8 +25,8 @@ allprojects { } ext { - buildToolsVersion = "25.0.0" - supportLibVersion = "25.4.0" + buildToolsVersion = "26.0.2" + supportLibVersion = "26.1.0" runnerVersion = "1.0.0" rulesVersion = "1.0.0" espressoVersion = "3.0.0" diff --git a/ui/espresso/IdlingResourceSample/build.gradle b/ui/espresso/IdlingResourceSample/build.gradle index 359614090..0a0283834 100644 --- a/ui/espresso/IdlingResourceSample/build.gradle +++ b/ui/espresso/IdlingResourceSample/build.gradle @@ -41,8 +41,8 @@ allprojects { } ext { - buildToolsVersion = "25.0.0" - supportLibVersion = "25.4.0" + buildToolsVersion = "26.0.2" + supportLibVersion = "26.1.0" runnerVersion = "1.0.0" rulesVersion = "1.0.0" espressoVersion = "3.0.0" diff --git a/ui/espresso/IntentsAdvancedSample/build.gradle b/ui/espresso/IntentsAdvancedSample/build.gradle index d6680037b..1e8252ab4 100644 --- a/ui/espresso/IntentsAdvancedSample/build.gradle +++ b/ui/espresso/IntentsAdvancedSample/build.gradle @@ -25,8 +25,8 @@ allprojects { } ext { - buildToolsVersion = "25.0.0" - supportLibVersion = "25.4.0" + buildToolsVersion = "26.0.2" + supportLibVersion = "26.1.0" runnerVersion = "1.0.0" rulesVersion = "1.0.0" espressoVersion = "3.0.0" diff --git a/ui/espresso/IntentsBasicSample/build.gradle b/ui/espresso/IntentsBasicSample/build.gradle index d6680037b..1e8252ab4 100644 --- a/ui/espresso/IntentsBasicSample/build.gradle +++ b/ui/espresso/IntentsBasicSample/build.gradle @@ -25,8 +25,8 @@ allprojects { } ext { - buildToolsVersion = "25.0.0" - supportLibVersion = "25.4.0" + buildToolsVersion = "26.0.2" + supportLibVersion = "26.1.0" runnerVersion = "1.0.0" rulesVersion = "1.0.0" espressoVersion = "3.0.0" diff --git a/ui/espresso/MultiWindowSample/build.gradle b/ui/espresso/MultiWindowSample/build.gradle index d6680037b..1e8252ab4 100644 --- a/ui/espresso/MultiWindowSample/build.gradle +++ b/ui/espresso/MultiWindowSample/build.gradle @@ -25,8 +25,8 @@ allprojects { } ext { - buildToolsVersion = "25.0.0" - supportLibVersion = "25.4.0" + buildToolsVersion = "26.0.2" + supportLibVersion = "26.1.0" runnerVersion = "1.0.0" rulesVersion = "1.0.0" espressoVersion = "3.0.0" diff --git a/ui/espresso/RecyclerViewSample/build.gradle b/ui/espresso/RecyclerViewSample/build.gradle index 359614090..0a0283834 100644 --- a/ui/espresso/RecyclerViewSample/build.gradle +++ b/ui/espresso/RecyclerViewSample/build.gradle @@ -41,8 +41,8 @@ allprojects { } ext { - buildToolsVersion = "25.0.0" - supportLibVersion = "25.4.0" + buildToolsVersion = "26.0.2" + supportLibVersion = "26.1.0" runnerVersion = "1.0.0" rulesVersion = "1.0.0" espressoVersion = "3.0.0" diff --git a/ui/espresso/WebBasicSample/build.gradle b/ui/espresso/WebBasicSample/build.gradle index d6680037b..1e8252ab4 100644 --- a/ui/espresso/WebBasicSample/build.gradle +++ b/ui/espresso/WebBasicSample/build.gradle @@ -25,8 +25,8 @@ allprojects { } ext { - buildToolsVersion = "25.0.0" - supportLibVersion = "25.4.0" + buildToolsVersion = "26.0.2" + supportLibVersion = "26.1.0" runnerVersion = "1.0.0" rulesVersion = "1.0.0" espressoVersion = "3.0.0" diff --git a/ui/uiautomator/BasicSample/build.gradle b/ui/uiautomator/BasicSample/build.gradle index d31646c98..9f7f9c857 100644 --- a/ui/uiautomator/BasicSample/build.gradle +++ b/ui/uiautomator/BasicSample/build.gradle @@ -22,8 +22,8 @@ allprojects { } ext { - buildToolsVersion = "25.0.0" - supportLibVersion = "25.4.0" + buildToolsVersion = "26.0.2" + supportLibVersion = "26.1.0" runnerVersion = "1.0.0" rulesVersion = "1.0.0" espressoVersion = "3.0.0" diff --git a/unit/BasicSample/build.gradle b/unit/BasicSample/build.gradle index 32753db9c..e6ee7be93 100644 --- a/unit/BasicSample/build.gradle +++ b/unit/BasicSample/build.gradle @@ -40,7 +40,7 @@ allprojects { } ext { - buildToolsVersion = "25.0.0" + buildToolsVersion = "26.0.2" junitVersion = "4.12" mockitoVersion = "1.10.19" } diff --git a/unit/BasicUnitAndroidTest/build.gradle b/unit/BasicUnitAndroidTest/build.gradle index 2a5d71da2..1e79b827e 100644 --- a/unit/BasicUnitAndroidTest/build.gradle +++ b/unit/BasicUnitAndroidTest/build.gradle @@ -25,8 +25,8 @@ allprojects { } ext { - buildToolsVersion = "25.0.0" - supportLibVersion = "25.4.0" + buildToolsVersion = "26.0.2" + supportLibVersion = "26.1.0" runnerVersion = "1.0.0" hamcrestVersion = "1.3" } From 5e0a65fb4e9fa9f3bc4194d653a8fec661d7a208 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Alc=C3=A9rreca?= Date: Fri, 13 Oct 2017 19:54:13 +0200 Subject: [PATCH 3/9] Cleans dep incompatibilities and fixes script for 2.x plugin --- test_all_ftl.sh | 7 ++++--- ui/espresso/IntentsBasicSample/app/build.gradle | 2 +- ui/espresso/MultiProcessSample/app/build.gradle | 2 +- ui/espresso/RecyclerViewSample/app/build.gradle | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/test_all_ftl.sh b/test_all_ftl.sh index 25d41e6f6..8a7ffab94 100755 --- a/test_all_ftl.sh +++ b/test_all_ftl.sh @@ -20,14 +20,15 @@ for line in $(find . -name 'gradlew'); do ./gradlew :app:assembleAndroidTest -PdisablePreDex | sed "s@^@$name @" # Prefix every line with directory ./gradlew test -PdisablePreDex | sed "s@^@$name @" # Prefix every line with directory - apkfile=app/build/outputs/apk/debug/app-debug.apk - testapkfile=app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk + apkfile=app/build/outputs/apk/app-debug.apk + testapkfile=app/build/outputs/apk/app-debug-androidTest.apk if [ ! -f $apkfile ] || [ ! -f $testapkfile ] ; then - echo "APKs not found, probably due to project using multiple flavors. Skipping $name" + echo "APKs not found, probably no UI tests present. Skipping $name" popd > /dev/null # Silent popd continue fi echo "Sending APKs to Firebase..." + echo "y" | sudo /opt/google-cloud-sdk/bin/gcloud firebase test android run --app $apkfile --test $testapkfile -d Nexus5X -v 26 -l fr --results-bucket=android-testing-samples-test-results --results-dir=$CIRCLE_BUILD_NUM/$name code=${PIPESTATUS[0]} diff --git a/ui/espresso/IntentsBasicSample/app/build.gradle b/ui/espresso/IntentsBasicSample/app/build.gradle index 655622fa4..68a96ebd2 100644 --- a/ui/espresso/IntentsBasicSample/app/build.gradle +++ b/ui/espresso/IntentsBasicSample/app/build.gradle @@ -5,7 +5,7 @@ android { buildToolsVersion rootProject.buildToolsVersion defaultConfig { applicationId "com.example.android.testing.espresso.BasicSample" - minSdkVersion 9 + minSdkVersion 14 targetSdkVersion 26 versionCode 1 versionName "1.0" diff --git a/ui/espresso/MultiProcessSample/app/build.gradle b/ui/espresso/MultiProcessSample/app/build.gradle index 82c02262c..67782cf44 100644 --- a/ui/espresso/MultiProcessSample/app/build.gradle +++ b/ui/espresso/MultiProcessSample/app/build.gradle @@ -18,7 +18,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 26 - buildToolsVersion "26.0.0" + buildToolsVersion "26.0.2" defaultConfig { applicationId "com.example.android.testing.espresso.multiprocesssample" minSdkVersion 26 diff --git a/ui/espresso/RecyclerViewSample/app/build.gradle b/ui/espresso/RecyclerViewSample/app/build.gradle index f0360f96f..b79ba242c 100644 --- a/ui/espresso/RecyclerViewSample/app/build.gradle +++ b/ui/espresso/RecyclerViewSample/app/build.gradle @@ -21,7 +21,7 @@ android { buildToolsVersion rootProject.buildToolsVersion defaultConfig { applicationId "com.example.android.testing.espresso.RecyclerViewSample" - minSdkVersion 9 + minSdkVersion 14 targetSdkVersion 26 versionCode 1 versionName "1.0" From ddfae6f1557990250acd7f9e87e2c90e76c4d8c5 Mon Sep 17 00:00:00 2001 From: Jose Alcerreca Date: Mon, 16 Oct 2017 12:11:45 +0200 Subject: [PATCH 4/9] Updates to ATSL 1.0.1 --- ui/espresso/RecyclerViewSample/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ui/espresso/RecyclerViewSample/build.gradle b/ui/espresso/RecyclerViewSample/build.gradle index 0a0283834..bd25e1a16 100644 --- a/ui/espresso/RecyclerViewSample/build.gradle +++ b/ui/espresso/RecyclerViewSample/build.gradle @@ -43,7 +43,7 @@ allprojects { ext { buildToolsVersion = "26.0.2" supportLibVersion = "26.1.0" - runnerVersion = "1.0.0" - rulesVersion = "1.0.0" - espressoVersion = "3.0.0" + runnerVersion = "1.0.1" + rulesVersion = "1.0.1" + espressoVersion = "3.0.1" } From ce2844b43a4fd7371970db769d8e8671d44bb376 Mon Sep 17 00:00:00 2001 From: Jose Alcerreca Date: Mon, 16 Oct 2017 12:53:49 +0200 Subject: [PATCH 5/9] Temporarily disable all except RV sample, to track down bug --- test_all_ftl.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_all_ftl.sh b/test_all_ftl.sh index 8a7ffab94..80ff8e942 100755 --- a/test_all_ftl.sh +++ b/test_all_ftl.sh @@ -2,7 +2,7 @@ set -e # Exit immediately if a command exits with a non-zero status. -for line in $(find . -name 'gradlew'); do +for line in $(find ui/espresso/RecyclerViewSample -name 'gradlew'); do p=$(dirname "${line}"); name="${p##*/}"; echo From b9d41954ec90c94692314587912ee0d92ac870b3 Mon Sep 17 00:00:00 2001 From: Jose Alcerreca Date: Mon, 16 Oct 2017 13:55:41 +0200 Subject: [PATCH 6/9] No luck, trying new build tools --- ui/espresso/RecyclerViewSample/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/espresso/RecyclerViewSample/build.gradle b/ui/espresso/RecyclerViewSample/build.gradle index bd25e1a16..1ff49b9a4 100644 --- a/ui/espresso/RecyclerViewSample/build.gradle +++ b/ui/espresso/RecyclerViewSample/build.gradle @@ -24,7 +24,7 @@ buildscript { } } dependencies { - classpath 'com.android.tools.build:gradle:2.3.2' + classpath 'com.android.tools.build:gradle:2.3.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files From 2504244857af7081e34dec2b78a32b82bd6f9029 Mon Sep 17 00:00:00 2001 From: Jose Alcerreca Date: Mon, 16 Oct 2017 14:10:08 +0200 Subject: [PATCH 7/9] Reverting to supportlib 25.4.0 --- ui/espresso/RecyclerViewSample/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/espresso/RecyclerViewSample/build.gradle b/ui/espresso/RecyclerViewSample/build.gradle index 1ff49b9a4..f5d9c627f 100644 --- a/ui/espresso/RecyclerViewSample/build.gradle +++ b/ui/espresso/RecyclerViewSample/build.gradle @@ -42,7 +42,7 @@ allprojects { ext { buildToolsVersion = "26.0.2" - supportLibVersion = "26.1.0" + supportLibVersion = "25.4.0" runnerVersion = "1.0.1" rulesVersion = "1.0.1" espressoVersion = "3.0.1" From bd580c84223ad1e52da66a7193a3d28aff0bfefb Mon Sep 17 00:00:00 2001 From: Jose Alcerreca Date: Mon, 16 Oct 2017 14:47:39 +0200 Subject: [PATCH 8/9] Adds 26.1.0 dependencies --- ui/espresso/RecyclerViewSample/app/build.gradle | 3 +++ ui/espresso/RecyclerViewSample/build.gradle | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ui/espresso/RecyclerViewSample/app/build.gradle b/ui/espresso/RecyclerViewSample/app/build.gradle index b79ba242c..95e9b1fd3 100644 --- a/ui/espresso/RecyclerViewSample/app/build.gradle +++ b/ui/espresso/RecyclerViewSample/app/build.gradle @@ -37,6 +37,7 @@ dependencies { // App dependencies compile 'com.android.support:support-annotations:' + rootProject.supportLibVersion; compile 'com.android.support:recyclerview-v7:' + rootProject.supportLibVersion; + compile 'com.android.support:design:' + rootProject.supportLibVersion; // Testing-only dependencies androidTestCompile 'com.android.support.test:runner:' + rootProject.runnerVersion; @@ -47,4 +48,6 @@ dependencies { // Force usage of dependencies in the test app, since it is internally used by the runner module. androidTestCompile 'com.android.support:support-annotations:' + rootProject.supportLibVersion; androidTestCompile 'com.android.support:recyclerview-v7:' + rootProject.supportLibVersion; + androidTestCompile 'com.android.support:support-v4:' + rootProject.supportLibVersion; + androidTestCompile 'com.android.support:design:' + rootProject.supportLibVersion; } diff --git a/ui/espresso/RecyclerViewSample/build.gradle b/ui/espresso/RecyclerViewSample/build.gradle index f5d9c627f..1ff49b9a4 100644 --- a/ui/espresso/RecyclerViewSample/build.gradle +++ b/ui/espresso/RecyclerViewSample/build.gradle @@ -42,7 +42,7 @@ allprojects { ext { buildToolsVersion = "26.0.2" - supportLibVersion = "25.4.0" + supportLibVersion = "26.1.0" runnerVersion = "1.0.1" rulesVersion = "1.0.1" espressoVersion = "3.0.1" From f3720b73772e7e02316e2549ede83a8a23d8d992 Mon Sep 17 00:00:00 2001 From: Jose Alcerreca Date: Mon, 16 Oct 2017 15:02:43 +0200 Subject: [PATCH 9/9] Adding the other samples --- test_all_ftl.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_all_ftl.sh b/test_all_ftl.sh index 80ff8e942..8a7ffab94 100755 --- a/test_all_ftl.sh +++ b/test_all_ftl.sh @@ -2,7 +2,7 @@ set -e # Exit immediately if a command exits with a non-zero status. -for line in $(find ui/espresso/RecyclerViewSample -name 'gradlew'); do +for line in $(find . -name 'gradlew'); do p=$(dirname "${line}"); name="${p##*/}"; echo