1- name : Android CI
1+ name : CI
22
3- on : [push]
3+ on :
4+ pull_request :
5+ branches :
6+ - master
7+ push :
8+ branches :
9+ - master
10+ tags :
11+ - ' *'
12+
13+ env :
14+ CI : true
15+ GRADLE_OPTS : -Dorg.gradle.daemon=false
16+ TERM : dumb
417
518jobs :
6- build :
19+ assemble :
20+ name : Assemble
21+ runs-on : ubuntu-latest
22+ env :
23+ JAVA_TOOL_OPTIONS : -Xmx4g
24+
25+ steps :
26+ - uses : actions/checkout@v2
27+ with :
28+ fetch-depth : 0
29+
30+ - uses : gradle/wrapper-validation-action@v1
31+
32+ - uses : actions/setup-java@v1
33+ with :
34+ java-version : 14
35+
36+ - uses : actions/cache@v1
37+ with :
38+ path : ~/.gradle/caches
39+ key : ${{ runner.os }}-${{ github.job }}-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.java') }}
40+
41+ - name : Assemble signed debug App apk
42+ run : |
43+ ./gradlew app:assembleDebug
44+
45+ unit-tests :
46+ name : Unit tests
47+ runs-on : ubuntu-latest
48+ env :
49+ JAVA_TOOL_OPTIONS : -Xmx4g
50+
51+ steps :
52+ - uses : actions/checkout@v2
753
54+ - uses : gradle/wrapper-validation-action@v1
55+
56+ - uses : actions/setup-java@v1
57+ with :
58+ java-version : 14
59+
60+ - uses : actions/cache@v1
61+ with :
62+ path : ~/.gradle/caches
63+ key : ${{ runner.os }}-${{ github.job }}-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.java') }}
64+
65+ - name : Run unit tests
66+ run : |
67+ ./gradlew test -PslimTests
68+ - name : Copy test results
69+ if : always()
70+ run : |
71+ mkdir -p junit
72+ find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} junit/ \;
73+ - name : Upload test results
74+ if : always()
75+ uses : actions/upload-artifact@v1
76+ with :
77+ name : junit-results
78+ path : junit
79+
80+ static-analysis :
81+ name : Static analysis
882 runs-on : ubuntu-latest
83+ env :
84+ JAVA_TOOL_OPTIONS : -Xmx4g
85+ steps :
86+ - uses : actions/checkout@v2
87+
88+ - uses : gradle/wrapper-validation-action@v1
89+
90+ - uses : actions/setup-java@v1
91+ with :
92+ java-version : 14
93+
94+ - uses : actions/cache@v1
95+ with :
96+ path : ~/.gradle/caches
97+ key : ${{ runner.os }}-${{ github.job }}-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.java') }}
98+ - name : Cleanup secrets
99+ if : always()
100+ run : |
101+ rm -f app/src/prod/google-services.json
102+ instrumented-tests :
103+ name : Instrumented tests
104+ runs-on : macos-latest
105+ timeout-minutes : 25
106+ env :
107+ JAVA_TOOL_OPTIONS : -Xmx4g
9108
10109 steps :
11- - uses : actions/checkout@v1
12- - name : set up JDK 1.8
13- uses : actions/setup-java@v1
14- with :
15- java-version : 1.8
16- - name : Build with Gradle
17- run : ./gradlew build
110+ - uses : actions/checkout@v2
111+
112+ - uses : gradle/wrapper-validation-action@v1
113+
114+ - uses : actions/setup-java@v1
115+ with :
116+ java-version : 14
117+
118+ - uses : actions/cache@v1
119+ with :
120+ path : ~/.gradle/caches
121+ key : ${{ runner.os }}-${{ github.job }}-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.java') }}
122+
123+ - name : Run Android instrumented tests
124+ uses : reactivecircus/android-emulator-runner@v2
125+ with :
126+ api-level : 28
127+ arch : x86_64
128+ profile : Nexus 5X
129+ script : ./gradlew connectedCheck
0 commit comments