summaryrefslogtreecommitdiff
path: root/.circleci/config.yml
blob: b6a6ba78eb8e60180fd73456546278f7ee5b0004 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
version: 2

jobs:
  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" }}
            - 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:
          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