• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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