12
12
13
13
jobs :
14
14
build :
15
- runs-on : ubuntu -latest
16
- timeout-minutes : 30
15
+ runs-on : macos -latest # Needed for emulators
16
+ timeout-minutes : 45
17
17
18
18
steps :
19
19
- name : Checkout
@@ -35,47 +35,46 @@ jobs:
35
35
~/.gradle/caches/build-cache-*
36
36
key : gradle-${{ hashFiles('checksum.txt') }}
37
37
38
- - name : Build project
39
- run : ./gradlew spotlessCheck assembleMockDebug assembleProdDebug testMockDebugUnitTest testProdDebugUnitTest --stacktrace
38
+ - name : Build project Mock and UnitTest
39
+ run : ./gradlew assembleMockDebug assembleProdDebug compileMockDebugUnitTestKotlin
40
40
41
- - name : Upload build reports
42
- if : always()
43
- uses : actions/upload-artifact@v2
44
- with :
45
- name : build-reports
46
- path : app/build/reports/
41
+ - name : Spotless
42
+ run : ./gradlew spotlessCheck
47
43
48
- test :
49
- needs : build
50
- runs-on : macOS-latest # enables hardware acceleration in the virtual machine
51
- timeout-minutes : 30
52
- strategy :
53
- matrix :
54
- api-level : [24, 29]
44
+ - name : Robolectric Mock
45
+ run : ./gradlew testMockDebugUnitTest
55
46
56
- steps :
57
- - name : Checkout
58
- uses : actions/checkout@v2
47
+ - name : Build project Prod and UnitTest
48
+ run : ./gradlew assembleMockDebug assembleProdDebug compileProdDebugUnitTestKotlin
59
49
60
- - name : Copy CI gradle.properties
61
- run : mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties
50
+ - name : Robolectric Prod
51
+ run : ./gradlew spotlessCheck assembleMockDebug assembleProdDebug testMockDebugUnitTest testProdDebugUnitTest --stacktrace
62
52
63
- - name : Set up JDK 11
64
- uses : actions/setup-java@v1
65
- with :
66
- java-version : 11
53
+ # Needed to accept licenses
54
+ - name : Setup Android SDK
55
+ uses : android-actions/setup-android@v2
67
56
68
- - name : Run instrumentation tests
69
- uses : reactivecircus/android-emulator-runner@v2
70
- with :
71
- api-level : ${{ matrix.api-level }}
72
- arch : x86
73
- disable-animations : true
74
- script : ./gradlew app:cMDAT --stacktrace
57
+ - name : Compile AndroidTests Mock
58
+ run : ./gradlew compileMockDebugAndroidTestKotlin
59
+
60
+ - name : Run all tests pixel 2 api 30 ATD
61
+ working-directory : .
62
+ run : ./gradlew -Pandroid.sdk.channel=3 -Pandroid.experimental.androidTest.numManagedDeviceShards=1 -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect" pixel2api30atdMockDebugAndroidTest
75
63
76
- - name : Upload test reports
64
+ - name : Run all tests pixel 2 api 30 non-ATD
65
+ working-directory : .
66
+ run : ./gradlew -Pandroid.sdk.channel=3 -Pandroid.experimental.androidTest.numManagedDeviceShards=1 -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect" pixel2api30MockDebugAndroidTest
67
+
68
+ - name : Upload build reports
77
69
if : always()
78
70
uses : actions/upload-artifact@v2
79
71
with :
80
- name : test -reports
72
+ name : build -reports
81
73
path : app/build/reports/
74
+
75
+ - name : Upload all outputs
76
+ if : failure()
77
+ uses : actions/upload-artifact@v2
78
+ with :
79
+ name : outputs
80
+ path : app/build/outputs/
0 commit comments