Skip to content

Commit 8865cc2

Browse files
authored
Disable Paparazzi tasks when Kover is running. (#884)
* Disable Paparazzi tasks when Kover is running. It allows us to split the test jobs between unit tests, screenshot test and coverage reports. * Move Sonar upload to the quality workflow, since we have no lint info in tests.
1 parent e75438a commit 8865cc2

File tree

5 files changed

+26
-18
lines changed

5 files changed

+26
-18
lines changed

.github/workflows/nightlyReports.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,11 @@ jobs:
2929
- name: ⚙️ Run unit tests, debug and release
3030
run: ./gradlew test $CI_GRADLE_ARG_PROPERTIES
3131

32-
- name: 📈 Run screenshot tests, generate kover report and verify coverage
33-
run: ./gradlew verifyPaparazziDebug koverMergedReport koverMergedVerify $CI_GRADLE_ARG_PROPERTIES -Pci-build=true
32+
- name: 📸 Run screenshot tests
33+
run: ./gradlew verifyPaparazziDebug $CI_GRADLE_ARG_PROPERTIES
34+
35+
- name: 📈 Generate kover report and verify coverage
36+
run: ./gradlew koverMergedReport koverMergedVerify $CI_GRADLE_ARG_PROPERTIES -Pci-build=true
3437

3538
- name: ✅ Upload kover report
3639
if: always()

.github/workflows/quality.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ jobs:
5151
name: linting-report
5252
path: |
5353
*/build/reports/**/*.*
54+
- name: 🔊 Publish results to Sonar
55+
env:
56+
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
57+
ORG_GRADLE_PROJECT_SONAR_LOGIN: ${{ secrets.SONAR_TOKEN }}
58+
if: ${{ always() && env.SONAR_TOKEN != '' && env.ORG_GRADLE_PROJECT_SONAR_LOGIN != '' }}
59+
run: ./gradlew sonar $CI_GRADLE_ARG_PROPERTIES
5460
- name: Prepare Danger
5561
if: always()
5662
run: |

.github/workflows/tests.yml

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,11 @@ jobs:
4040
- name: ⚙️ Run unit tests, debug and release
4141
run: ./gradlew test $CI_GRADLE_ARG_PROPERTIES
4242

43-
- name: 📈 Run screenshot tests, generate kover report and verify coverage
44-
run: ./gradlew verifyPaparazziDebug koverMergedReport koverMergedVerify $CI_GRADLE_ARG_PROPERTIES -Pci-build=true
43+
- name: 📸 Run screenshot tests
44+
run: ./gradlew verifyPaparazziDebug $CI_GRADLE_ARG_PROPERTIES
45+
46+
- name: 📈Generate kover report and verify coverage
47+
run: ./gradlew koverMergedReport koverMergedVerify $CI_GRADLE_ARG_PROPERTIES -Pci-build=true
4548

4649
- name: 🚫 Upload kover failed coverage reports
4750
if: failure()
@@ -80,13 +83,6 @@ jobs:
8083
**/out/failures/
8184
**/build/reports/tests/*UnitTest/
8285
83-
- name: 🔊 Publish results to Sonar
84-
env:
85-
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
86-
ORG_GRADLE_PROJECT_SONAR_LOGIN: ${{ secrets.SONAR_TOKEN }}
87-
if: ${{ always() && env.SONAR_TOKEN != '' && env.ORG_GRADLE_PROJECT_SONAR_LOGIN != '' }}
88-
run: ./gradlew sonar $CI_GRADLE_ARG_PROPERTIES
89-
9086
# https://github.com/codecov/codecov-action
9187
- name: ☂️ Upload coverage reports to codecov
9288
if: always()

build.gradle.kts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -283,13 +283,6 @@ koverMerged {
283283
}
284284
}
285285

286-
// Make Kover depend on Paparazzi
287-
tasks.whenTaskAdded {
288-
if (name.startsWith("koverMerged")) {
289-
dependsOn(":tests:uitests:verifyPaparazziDebug")
290-
}
291-
}
292-
293286
// When running on the CI, run only debug test variants
294287
val ciBuildProperty = "ci-build"
295288
val isCiBuild = if (project.hasProperty(ciBuildProperty)) {

tests/uitests/build.gradle.kts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,16 @@ android {
2828
namespace = "io.element.android.tests.uitests"
2929
}
3030

31+
// Workaround: `kover` tasks somehow trigger the screenshot tests with a broken configuration, removing
32+
// any previous test results and not creating new ones. This is a workaround to disable the screenshot tests
33+
// when the `kover` tasks are detected.
34+
tasks.withType<Test>() {
35+
if (project.gradle.startParameter.taskNames.any { it.contains("kover", ignoreCase = true) }) {
36+
println("WARNING: Kover task detected, disabling screenshot test task $name.")
37+
isEnabled = false
38+
}
39+
}
40+
3141
dependencies {
3242
testImplementation(libs.test.junit)
3343
testImplementation(libs.test.parameter.injector)

0 commit comments

Comments
 (0)