9
9
name : Assemble
10
10
runs-on : ubuntu-latest
11
11
timeout-minutes : 25
12
- env :
13
- JAVA_TOOL_OPTIONS : -Xmx6g
14
- GRADLE_OPTS : -Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2 -Dkotlin.incremental=false -Dkotlin.compiler.execution.strategy=in-process
15
12
steps :
16
- - uses : actions/checkout@v2
17
- - uses : gradle/wrapper-validation-action@v1
18
- - uses : actions/setup-java@v1
13
+ - uses : actions/checkout@v4
14
+ - uses : gradle/wrapper-validation-action@v2
15
+ - uses : actions/setup-java@v4
19
16
with :
20
- java-version : 11
21
- - uses : actions/cache@v2
17
+ distribution : ' zulu'
18
+ java-version : ' 17'
19
+ - uses : actions/cache@v4
22
20
with :
23
21
path : |
24
22
~/.gradle/caches
@@ -38,34 +36,33 @@ jobs:
38
36
runs-on : ubuntu-latest
39
37
timeout-minutes : 10
40
38
steps :
41
- - uses : actions/checkout@v2
42
- - uses : gradle/wrapper-validation-action@v1
43
- - uses : actions/setup-java@v1
39
+ - uses : actions/checkout@v4
40
+ - uses : gradle/wrapper-validation-action@v2
41
+ - uses : actions/setup-java@v4
44
42
with :
45
- java-version : 11
43
+ distribution : ' zulu'
44
+ java-version : ' 17'
46
45
- name : Detekt
47
46
run : ./gradlew detekt --stacktrace
48
47
working-directory : .
49
48
- name : Upload failure reports
50
49
if : failure()
51
- uses : actions/upload-artifact@v2
50
+ uses : actions/upload-artifact@v4
52
51
with :
53
52
path : ' **/build/reports'
54
53
55
54
unit-tests :
56
55
name : Unit tests
57
56
runs-on : ubuntu-latest
58
57
timeout-minutes : 20
59
- env :
60
- JAVA_TOOL_OPTIONS : -Xmx4g
61
- GRADLE_OPTS : -Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2 -Dkotlin.incremental=false -Dkotlin.compiler.execution.strategy=in-process
62
58
steps :
63
- - uses : actions/checkout@v2
64
- - uses : gradle/wrapper-validation-action@v1
65
- - uses : actions/setup-java@v1
59
+ - uses : actions/checkout@v4
60
+ - uses : gradle/wrapper-validation-action@v2
61
+ - uses : actions/setup-java@v4
66
62
with :
67
- java-version : 11
68
- - uses : actions/cache@v2
63
+ distribution : ' zulu'
64
+ java-version : ' 17'
65
+ - uses : actions/cache@v4
69
66
with :
70
67
path : |
71
68
~/.gradle/caches
78
75
working-directory : .
79
76
- name : Upload failure reports
80
77
if : failure()
81
- uses : actions/upload-artifact@v2
78
+ uses : actions/upload-artifact@v4
82
79
with :
83
80
name : unit-test-reports
84
81
path : ' **/build/reports'
@@ -88,60 +85,70 @@ jobs:
88
85
rm -f ~/.gradle/caches/modules-2/gc.properties
89
86
90
87
instrumentation-tests :
91
- runs-on : macOS-latest
92
- timeout-minutes : 60
93
- env :
94
- JAVA_TOOL_OPTIONS : -Xmx4g
95
- GRADLE_OPTS : -Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2 -Dkotlin.incremental=false -Dkotlin.compiler.execution.strategy=in-process
96
- strategy :
97
- fail-fast : false
98
- matrix :
99
- api-level : [22,25,29]
100
- name : Instrumentation tests [API=${{ matrix.api-level }}]
88
+ name : Instrumentation tests
89
+ runs-on : macos-13
90
+ timeout-minutes : 30
101
91
steps :
102
- - uses : actions/checkout@v2
103
- - uses : gradle/wrapper-validation-action@v1
104
- - uses : actions/setup-java@v1
92
+ - uses : actions/checkout@v4
93
+ - uses : actions/setup-java@v4
105
94
with :
106
- java-version : 11
107
- - uses : actions/cache@v2
95
+ distribution : ' zulu'
96
+ java-version : ' 17'
97
+ - uses : gradle/wrapper-validation-action@v1
98
+ - uses : gradle/gradle-build-action@v2
99
+ - name : Pre build sources before launching emulator
100
+ run : ./gradlew compileDebugAndroidTestSources
101
+ - name : AVD cache
102
+ uses : actions/cache@v4
103
+ id : avd-cache
108
104
with :
109
105
path : |
110
- ~/.gradle/caches
111
- ~/.gradle/wrapper
112
- key : ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
113
- restore-keys : |
114
- ${{ runner.os }}-gradle-
106
+ ~/.android/avd/*
107
+ ~/.android/adb*
108
+ key : avd-29
109
+ - name : Create AVD and generate snapshot for caching
110
+ if : steps.avd-cache.outputs.cache-hit != 'true'
111
+ uses : reactivecircus/android-emulator-runner@v2
112
+ with :
113
+ # Use API 29 https://github.com/ReactiveCircus/android-emulator-runner/issues/222
114
+ api-level : 29
115
+ arch : x86_64
116
+ force-avd-creation : false
117
+ emulator-options : -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
118
+ disable-animations : false
119
+ script : echo "Generated AVD snapshot for caching."
115
120
- name : Instrumentation tests
116
121
uses : reactivecircus/android-emulator-runner@v2
117
122
with :
118
- api-level : ${{ matrix.api-level }}
119
- arch : x86
120
- script : ./gradlew connectedCheck
121
-
122
- - name : Upload failure reports
123
+ # Use API 29 https://github.com/ReactiveCircus/android-emulator-runner/issues/222
124
+ api-level : 29
125
+ arch : x86_64
126
+ force-avd-creation : false
127
+ emulator-options : -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
128
+ disable-animations : true
129
+ script : |
130
+ adb logcat > logcat.out &
131
+ ./gradlew connectedCheck
132
+ - name : Upload failed instrumentation artifacts
123
133
if : failure()
124
- uses : actions/upload-artifact@v2
134
+ uses : actions/upload-artifact@v4
125
135
with :
126
- name : instrumentation-reports-api-${{ matrix.api-level }}
127
- path : ' **/build/reports'
128
-
129
- - name : Cleanup Gradle Cache
130
- run : |
131
- rm -f ~/.gradle/caches/modules-2/modules-2.lock
132
- rm -f ~/.gradle/caches/modules-2/gc.properties
133
-
136
+ name : instrumentation-failures
137
+ path : |
138
+ **/build/reports
139
+ logcat.out
134
140
verify-publication :
135
141
name : Verify publication
136
142
runs-on : ubuntu-latest
137
143
timeout-minutes : 10
138
144
steps :
139
- - uses : actions/checkout@v2
140
- - uses : gradle/wrapper-validation-action@v1
141
- - uses : actions/setup-java@v1
145
+ - uses : actions/checkout@v4
146
+ - uses : gradle/wrapper-validation-action@v2
147
+ - uses : actions/setup-java@v4
142
148
with :
143
- java-version : 11
144
- - uses : actions/cache@v2
149
+ distribution : ' zulu'
150
+ java-version : ' 17'
151
+ - uses : actions/cache@v4
145
152
with :
146
153
path : |
147
154
~/.gradle/caches
0 commit comments