diff options
Diffstat (limited to '.circleci/config.yml')
-rw-r--r-- | .circleci/config.yml | 94 |
1 files changed, 79 insertions, 15 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml index 7446862c6..b6a6ba78e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,39 +1,103 @@ version: 2 jobs: - build: + test-debug: docker: - image: circleci/android:api-28 - working_directory: ~/AntennaPod - environment: GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx1536m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError"' _JAVA_OPTIONS: "-Xms256m -Xmx1280m" - steps: - checkout - - restore_cache: keys: - v1-android-{{ checksum "build.gradle" }} - # fallback to using the latest cache if no exact match is found - v1-android- + - run: + name: Build debug + command: ./gradlew assembleDebug -PdisablePreDex + - run: + name: Execute debug unit tests + command: ./gradlew :core:testPlayDebugUnitTest -PdisablePreDex + - save_cache: + paths: + - ~/.android + - ~/.gradle + - ~/android + key: v1-android-{{ checksum "build.gradle" }} + test-release: + docker: + - image: circleci/android:api-28 + working_directory: ~/AntennaPod + environment: + GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx1536m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError"' + _JAVA_OPTIONS: "-Xms256m -Xmx1280m" + steps: + - checkout + - restore_cache: + keys: + - v1-android-{{ checksum "build.gradle" }} + - v1-android- + - run: + name: Create temporary release keystore + command: keytool -noprompt -genkey -v -keystore "app/keystore" -alias alias -storepass password -keypass password -keyalg RSA -validity 10 -dname "CN=antennapod.org, OU=dummy, O=dummy, L=dummy, S=dummy, C=US" - run: - # To build release, we need to create a temporary keystore that can be used to sign the app - command: | - keytool -noprompt -genkey -v -keystore "app/keystore" -alias alias -storepass password -keypass password -keyalg RSA -validity 10 -dname "CN=antennapod.org, OU=dummy, O=dummy, L=dummy, S=dummy, C=US" - ./gradlew assembleRelease :core:testPlayReleaseUnitTest -PdisablePreDex - no_output_timeout: 1800 - - - store_artifacts: - path: app/build/outputs/apk - destination: apks + name: Build release + command: ./gradlew assembleRelease -PdisablePreDex + - run: + name: Execute release unit tests + command: ./gradlew :core:testPlayReleaseUnitTest -PdisablePreDex + - save_cache: + paths: + - ~/.android + - ~/.gradle + - ~/android + key: v1-android-{{ checksum "build.gradle" }} + build-androidtest: + docker: + - image: circleci/android:api-28 + working_directory: ~/AntennaPod + environment: + GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx1536m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError"' + _JAVA_OPTIONS: "-Xms256m -Xmx1280m" + steps: + - checkout + - restore_cache: + keys: + - v1-android-{{ checksum "build.gradle" }} + - v1-android- + - run: + name: Build integration tests + command: ./gradlew :app:assemblePlayDebugAndroidTest -PdisablePreDex - save_cache: paths: - ~/.android - ~/.gradle - ~/android key: v1-android-{{ checksum "build.gradle" }} + + checkstyle: + docker: + - image: circleci/android:api-28 + working_directory: ~/AntennaPod + steps: + - checkout + - run: + name: Checkstyle + command: ./gradlew checkstyle + +workflows: + version: 2 + + unit-tests: + jobs: + - test-debug + - test-release + - build-androidtest + + static-analysis: + jobs: + - checkstyle |