diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000000000000000000000000000000000000..f2f0f630d3f1cc0b5c34dd10082b18b86ca4ff59 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,104 @@ +version: 2 + +setup_ftl1: &setup_ftl1 + name: Store Google Service Account + command: echo $GCLOUD_SERVICE_KEY | base64 -di > ${HOME}/gcloud-service-key.json + +setup_ftl2: &setup_ftl2 + name: Authorize gcloud and set config defaults + command: | + sudo gcloud auth activate-service-account --key-file=${HOME}/gcloud-service-key.json + sudo gcloud --quiet config set project ${GOOGLE_PROJECT_ID} + +download_results: &download_results + name: Install gsutil dependency and copy test results data + command: | + + BUCKETNAME=${PROJECT_DIR:0:29} # limit length + sudo pip install -U crcmod + sudo gsutil -m cp -r -U `sudo gsutil ls gs://cloud-test-${GOOGLE_PROJECT_ID}-arch-${BUCKETNAME,,}/ | tail -1` ${CIRCLE_ARTIFACTS}/ | true + +test_sample: &test_sample + docker: + - image: circleci/android:api-28-alpha # gcloud is baked into this image + working_directory: ~/project + steps: + - checkout + - run: + <<: *setup_ftl1 + - run: + <<: *setup_ftl2 + - run: + name: Assemble APKs + command: | + cd ${PROJECT_DIR} + ./gradlew :app:assembleDebug + ./gradlew :app:assembleDebugAndroidTest + + - run: + name: Test $PROJECT_DIR with Firebase Test Lab + command: | + BUCKETNAME=${PROJECT_DIR:0:29} # limit length + sudo gcloud firebase test android run \ + --app ${PROJECT_DIR}/app/build/outputs/apk/debug/app-debug.apk \ + --test ${PROJECT_DIR}/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk \ + --results-bucket cloud-test-${GOOGLE_PROJECT_ID}-arch-${BUCKETNAME,,} + - run: + <<: *download_results + +jobs: + test_basic_sample: + environment: + PROJECT_DIR: BasicSample + <<: *test_sample + test_rx_java_sample: + environment: + PROJECT_DIR: BasicRxJavaSample + <<: *test_sample + test_rx_java_sample_kotlin: + environment: + PROJECT_DIR: BasicRxJavaSampleKotlin + <<: *test_sample + test_github_browser_sample: + environment: + PROJECT_DIR: GithubBrowserSample + <<: *test_sample + test_navigation_basic_sample: + environment: + PROJECT_DIR: NavigationBasicSample + <<: *test_sample + test_paging_sample: + environment: + PROJECT_DIR: PagingSample + <<: *test_sample + test_paging_network_sample: + environment: + PROJECT_DIR: PagingWithNetworkSample + <<: *test_sample + test_persistence_content_provider_sample: + environment: + PROJECT_DIR: PersistenceContentProviderSample + <<: *test_sample + test_persistence_migrations_sample: + environment: + PROJECT_DIR: PersistenceMigrationsSample + <<: *test_sample + test_workmanager_sample: + environment: + PROJECT_DIR: WorkManagerSample + <<: *test_sample + +workflows: + version: 2 + build_and_test: + jobs: + - test_basic_sample + - test_rx_java_sample + - test_rx_java_sample_kotlin + - test_github_browser_sample + # no tests - test_navigation_basic_sample + - test_paging_sample + - test_paging_network_sample + - test_persistence_content_provider_sample + # inst tests with flavors - test_persistence_migrations_sample + - test_workmanager_sample diff --git a/circle.yml b/circle.yml deleted file mode 100644 index b7ecd182ceab75e0030f5302359128c67d516a00..0000000000000000000000000000000000000000 --- a/circle.yml +++ /dev/null @@ -1,21 +0,0 @@ -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-27.0.3,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/ \;