summaryrefslogtreecommitdiff
path: root/.circleci/config.yml
blob: b5903350f5f9e1e0bc71e8ca6b9ba79b710b51f3 (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
version: 2.1

jobs:
  build:
    parameters:
      build-steps:
        description: "Steps that will be executed for this build"
        type: steps
        default: []
    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"
      - steps: << parameters.build-steps >>
      - save_cache:
          paths:
            - ~/.android
            - ~/.gradle
            - ~/android
          key: v1-android-{{ checksum "build.gradle" }}

workflows:
  unit-tests:
    jobs:
      - build:
          name: Build debug
          build-steps:
            - run:
                name: Build debug
                command: ./gradlew assembleDebug -PdisablePreDex
            - run:
                name: Execute debug unit tests
                command: ./gradlew :core:testPlayDebugUnitTest -PdisablePreDex
      - build:
          name: Build release
          build-steps:
            - run:
                name: Build release
                command: ./gradlew assembleRelease -PdisablePreDex
            - run:
                name: Execute release unit tests
                command: ./gradlew :core:testPlayReleaseUnitTest -PdisablePreDex
      - build:
          name: Build integration tests
          build-steps:
            - run:
                name: Build integration tests
                command: ./gradlew :app:assemblePlayDebugAndroidTest -PdisablePreDex
      - build:
          name: Build free
          build-steps:
            - run:
                name: Build free (for F-Droid)
                command: ./gradlew assembleFreeRelease -PdisablePreDex -PfreeBuild

  static-analysis:
    jobs:
      - build:
          name: Checkstyle
          build-steps:
            - run:
                name: Checkstyle
                command: ./gradlew checkstyle