| version: 2 |
| jobs: |
| build: |
| working_directory: ~/code |
| docker: |
| - image: circleci/android:api-26-alpha |
| resource_class: xlarge |
| environment: |
| JVM_OPTS: -Xmx3172m |
| GRADLE_MAX_PARALLEL_FORKS: 2 |
| steps: |
| - checkout |
| - run: |
| name: Calculate Cache Hash |
| command: | |
| find . \( -name \*.gradle -or -name \*.groovy -or -name \*.sh -or -name \*.rb -or -name circle.yml \) -exec shasum {} \; | sort > .cache-hash |
| cat .cache-hash |
| - run: |
| name: Install Maven |
| command: sudo apt-get update; sudo apt-get install maven |
| - restore_cache: |
| key: cache-{{ checksum ".cache-hash" }} |
| - run: |
| name: Download Dependencies |
| command: | |
| sdkmanager --install 'platforms;android-27' |
| ./scripts/install-dependencies.rb |
| ./gradlew prefetchDependencies |
| - save_cache: |
| paths: |
| - ~/.gradle |
| - ~/.m2 |
| - /opt/android/sdk/platforms/android-27 |
| key: cache-{{ checksum ".cache-hash" }} |
| - run: |
| name: Build and Test |
| command: SKIP_JAVADOC=true ./gradlew clean assemble test --info --stacktrace --continue |
| - run: |
| name: Collect Test Results |
| command: | |
| mkdir -p ~/junit/ |
| find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/junit/ \; |
| when: always |
| - store_test_results: |
| path: ~/junit |
| - store_artifacts: |
| path: build/reports |
| destination: reports |
| - run: |
| name: Upload Snapshot |
| command: | |
| if [ "${CIRCLE_BRANCH}" == "master" ]; then |
| ./gradlew upload --no-rebuild |
| fi |