1version: 2 2jobs: 3 build: 4 working_directory: ~/code 5 docker: 6 - image: circleci/android:api-26-alpha 7 resource_class: xlarge 8 environment: 9 JVM_OPTS: -Xmx3172m 10 GRADLE_MAX_PARALLEL_FORKS: 2 11 steps: 12 - checkout 13 - run: 14 name: Calculate Cache Hash 15 command: | 16 find . \( -name \*.gradle -or -name \*.groovy -or -name \*.sh -or -name \*.rb -or -name circle.yml \) -exec shasum {} \; | sort > .cache-hash 17 cat .cache-hash 18 - run: 19 name: Install Maven 20 command: sudo apt-get update; sudo apt-get install maven 21 - restore_cache: 22 key: cache-{{ checksum ".cache-hash" }} 23 - run: 24 name: Download Dependencies 25 command: | 26 sdkmanager --install 'platforms;android-27' 27 ./scripts/install-dependencies.rb 28 ./gradlew prefetchDependencies 29 - save_cache: 30 paths: 31 - ~/.gradle 32 - ~/.m2 33 - /opt/android/sdk/platforms/android-27 34 key: cache-{{ checksum ".cache-hash" }} 35 - run: 36 name: Build and Test 37 command: SKIP_JAVADOC=true ./gradlew clean assemble test --info --stacktrace --continue 38 - run: 39 name: Collect Test Results 40 command: | 41 mkdir -p ~/junit/ 42 find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/junit/ \; 43 when: always 44 - store_test_results: 45 path: ~/junit 46 - store_artifacts: 47 path: build/reports 48 destination: reports 49 - run: 50 name: Upload Snapshot 51 command: | 52 if [ "${CIRCLE_BRANCH}" == "master" ]; then 53 ./gradlew upload --no-rebuild 54 fi