@@ -18,20 +18,14 @@ jobs:
1818 permissions :
1919 contents : write
2020 pull-requests : write
21+ security-events : write
2122
2223 timeout-minutes : 60
2324
2425 steps :
2526 - name : Checkout
2627 uses : actions/checkout@v4
2728
28- - name : Enable KVM group perms
29- run : |
30- echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
31- sudo udevadm control --reload-rules
32- sudo udevadm trigger --name-match=kvm
33- ls /dev/kvm
34-
3529 - name : Copy CI gradle.properties
3630 run : mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties
3731
@@ -43,15 +37,11 @@ jobs:
4337
4438 - name : Setup Gradle
4539 uses : gradle/actions/setup-gradle@v4
46-
47- - name : Setup Android SDK
48- uses : android-actions/setup-android@v3
49-
50- - name : Accept licenses
51- run : yes | sdkmanager --licenses || true
40+ with :
41+ cache-encryption-key : ${{ secrets.GRADLE_ENCRYPTION_KEY }}
5242
5343 - name : Check build-logic
54- run : ./gradlew check -p build-logic
44+ run : ./gradlew : build-logic:convention:check
5545
5646 - name : Check spotless
5747 run : ./gradlew spotlessCheck --init-script gradle/init.gradle.kts --no-configuration-cache
9383 continue-on-error : false
9484 if : steps.screenshotsverify.outcome == 'failure' && github.event.pull_request.head.repo.full_name != github.repository
9585 run : |
96- echo "::error::Screenshot tests failed, please create a PR in your fork first." && exit 1
86+ echo "::error::Screenshot tests failed, please create a PR in your fork first."
87+ echo "Your fork's CI will take screenshots for your fork."
88+ exit 1
9789
9890 # Runs if previous job failed
9991 - name : Generate new screenshots if verification failed and it's a PR
@@ -114,19 +106,8 @@ jobs:
114106 - name : Run local tests
115107 run : ./gradlew testDemoDebug :lint:test
116108
117- - name : Setup GMD
118- run : ./gradlew :benchmarks:pixel6Api33Setup
119- --info
120- -Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true
121- -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect"
122-
123109 - name : Build all build type and flavor permutations
124- run : ./gradlew :app:assemble :benchmarks:assemble -Pandroidx.baselineprofile.skipgeneration
125- -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect"
126- -Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true
127- -Pandroid.experimental.androidTest.numManagedDeviceShards=1
128- -Pandroid.experimental.testOptions.managedDevices.maxConcurrentDevices=1
129- -Pandroid.experimental.testOptions.managedDevices.setupTimeoutMinutes=5
110+ run : ./gradlew :app:assemble
130111
131112 - name : Upload build outputs (APKs)
132113 uses : actions/upload-artifact@v4
@@ -135,14 +116,14 @@ jobs:
135116 path : ' **/build/outputs/apk/**/*.apk'
136117
137118 - name : Upload JVM local results (XML)
138- if : always()
119+ if : ${{ !cancelled() }}
139120 uses : actions/upload-artifact@v4
140121 with :
141122 name : local-test-results
142123 path : ' **/build/test-results/test*UnitTest/**.xml'
143124
144125 - name : Upload screenshot results (PNG)
145- if : always()
126+ if : ${{ !cancelled() }}
146127 uses : actions/upload-artifact@v4
147128 with :
148129 name : screenshot-test-results
@@ -152,12 +133,18 @@ jobs:
152133 run : ./gradlew :app:lintProdRelease :app-nia-catalog:lintRelease :lint:lint
153134
154135 - name : Upload lint reports (HTML)
155- if : always()
136+ if : ${{ !cancelled() }}
156137 uses : actions/upload-artifact@v4
157138 with :
158139 name : lint-reports
159140 path : ' **/build/reports/lint-results-*.html'
160141
142+ - name : Upload lint reports (SARIF)
143+ if : ${{ !cancelled() && hashFiles('**/*.sarif') != '' }}
144+ uses : github/codeql-action/upload-sarif@v3
145+ with :
146+ sarif_file : ' ./'
147+
161148 - name : Check badging
162149 run : ./gradlew :app:checkProdReleaseBadging
163150
@@ -166,7 +153,7 @@ jobs:
166153 timeout-minutes : 55
167154 strategy :
168155 matrix :
169- api-level : [26, 30 ]
156+ api-level : [26, 34 ]
170157
171158 steps :
172159 - name : Delete unnecessary tools 🔧
@@ -202,8 +189,7 @@ jobs:
202189 - name : Setup Gradle
203190 uses : gradle/actions/setup-gradle@v4
204191 with :
205- validate-wrappers : true
206- gradle-home-cache-cleanup : true
192+ cache-encryption-key : ${{ secrets.GRADLE_ENCRYPTION_KEY }}
207193
208194 - name : Build projects and run instrumentation tests
209195 uses : reactivecircus/android-emulator-runner@v2
@@ -226,7 +212,7 @@ jobs:
226212 run : ./gradlew createDemoDebugCombinedCoverageReport
227213
228214 - name : Upload test reports
229- if : always()
215+ if : ${{ !cancelled() }}
230216 uses : actions/upload-artifact@v4
231217 with :
232218 name : test-reports-${{ matrix.api-level }}
@@ -235,7 +221,7 @@ jobs:
235221 - name : Display local test coverage (only API 30)
236222 if : matrix.api-level == 30
237223 id : jacoco
238- uses :
madrapps/[email protected] .0 224+ uses :
madrapps/[email protected] .1 239225 with :
240226 title : Combined test coverage report
241227 min-coverage-overall : 40
0 commit comments