version: 2.1 jobs: build: working_directory: ~/code docker: - image: circleci/android:api-29 environment: JVM_OPTS: -Xmx3200m steps: - checkout - restore_cache: key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }} - run: name: Download Dependencies command: ./gradlew androidDependencies - save_cache: paths: - ~/.gradle key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }} tests: working_directory: ~/code docker: - image: circleci/android:api-29 environment: JVM_OPTS: -Xmx3200m steps: - checkout - restore_cache: key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }} - store_artifacts: path: app/build/reports destination: reports - run: name: Run Lint Test command: ./gradlew lint - run: name: Run Tests command: ./gradlew lint test - store_artifacts: path: app/build/reports destination: reports - store_test_results: path: app/build/test-results deploy: working_directory: ~/code docker: - image: circleci/android:api-29 environment: JVM_OPTS: -Xmx3200m steps: - checkout - restore_cache: key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }} - run: command: | mkdir treedatastructure/maven echo ${GPG_KEY_CONTENTS} | base64 -d --ignore-garbage > treedatastructure/maven/secret.gpg - run: name: Staging command: ./gradlew :treedatastructure:publishReleasePublicationToSonatypeRepository workflows: version: 2.1 build-and-deploy: jobs: - build - deploy: requires: - build filters: tags: only: - /.*/ branches: only: - release - master