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.
This commit is contained in:
committed by
GitHub
parent
045d957f91
commit
323a84db37
7
.github/workflows/nightlyReports.yml
vendored
7
.github/workflows/nightlyReports.yml
vendored
@@ -29,8 +29,11 @@ jobs:
|
||||
- name: ⚙️ Run unit tests, debug and release
|
||||
run: ./gradlew test $CI_GRADLE_ARG_PROPERTIES
|
||||
|
||||
- name: 📈 Run screenshot tests, generate kover report and verify coverage
|
||||
run: ./gradlew verifyPaparazziDebug koverMergedReport koverMergedVerify $CI_GRADLE_ARG_PROPERTIES -Pci-build=true
|
||||
- name: 📸 Run screenshot tests
|
||||
run: ./gradlew verifyPaparazziDebug $CI_GRADLE_ARG_PROPERTIES
|
||||
|
||||
- name: 📈 Generate kover report and verify coverage
|
||||
run: ./gradlew koverMergedReport koverMergedVerify $CI_GRADLE_ARG_PROPERTIES -Pci-build=true
|
||||
|
||||
- name: ✅ Upload kover report
|
||||
if: always()
|
||||
|
||||
6
.github/workflows/quality.yml
vendored
6
.github/workflows/quality.yml
vendored
@@ -51,6 +51,12 @@ jobs:
|
||||
name: linting-report
|
||||
path: |
|
||||
*/build/reports/**/*.*
|
||||
- name: 🔊 Publish results to Sonar
|
||||
env:
|
||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||
ORG_GRADLE_PROJECT_SONAR_LOGIN: ${{ secrets.SONAR_TOKEN }}
|
||||
if: ${{ always() && env.SONAR_TOKEN != '' && env.ORG_GRADLE_PROJECT_SONAR_LOGIN != '' }}
|
||||
run: ./gradlew sonar $CI_GRADLE_ARG_PROPERTIES
|
||||
- name: Prepare Danger
|
||||
if: always()
|
||||
run: |
|
||||
|
||||
14
.github/workflows/tests.yml
vendored
14
.github/workflows/tests.yml
vendored
@@ -40,8 +40,11 @@ jobs:
|
||||
- name: ⚙️ Run unit tests, debug and release
|
||||
run: ./gradlew test $CI_GRADLE_ARG_PROPERTIES
|
||||
|
||||
- name: 📈 Run screenshot tests, generate kover report and verify coverage
|
||||
run: ./gradlew verifyPaparazziDebug koverMergedReport koverMergedVerify $CI_GRADLE_ARG_PROPERTIES -Pci-build=true
|
||||
- name: 📸 Run screenshot tests
|
||||
run: ./gradlew verifyPaparazziDebug $CI_GRADLE_ARG_PROPERTIES
|
||||
|
||||
- name: 📈Generate kover report and verify coverage
|
||||
run: ./gradlew koverMergedReport koverMergedVerify $CI_GRADLE_ARG_PROPERTIES -Pci-build=true
|
||||
|
||||
- name: 🚫 Upload kover failed coverage reports
|
||||
if: failure()
|
||||
@@ -80,13 +83,6 @@ jobs:
|
||||
**/out/failures/
|
||||
**/build/reports/tests/*UnitTest/
|
||||
|
||||
- name: 🔊 Publish results to Sonar
|
||||
env:
|
||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||
ORG_GRADLE_PROJECT_SONAR_LOGIN: ${{ secrets.SONAR_TOKEN }}
|
||||
if: ${{ always() && env.SONAR_TOKEN != '' && env.ORG_GRADLE_PROJECT_SONAR_LOGIN != '' }}
|
||||
run: ./gradlew sonar $CI_GRADLE_ARG_PROPERTIES
|
||||
|
||||
# https://github.com/codecov/codecov-action
|
||||
- name: ☂️ Upload coverage reports to codecov
|
||||
if: always()
|
||||
|
||||
@@ -283,13 +283,6 @@ koverMerged {
|
||||
}
|
||||
}
|
||||
|
||||
// Make Kover depend on Paparazzi
|
||||
tasks.whenTaskAdded {
|
||||
if (name.startsWith("koverMerged")) {
|
||||
dependsOn(":tests:uitests:verifyPaparazziDebug")
|
||||
}
|
||||
}
|
||||
|
||||
// When running on the CI, run only debug test variants
|
||||
val ciBuildProperty = "ci-build"
|
||||
val isCiBuild = if (project.hasProperty(ciBuildProperty)) {
|
||||
|
||||
@@ -28,6 +28,16 @@ android {
|
||||
namespace = "io.element.android.tests.uitests"
|
||||
}
|
||||
|
||||
// Workaround: `kover` tasks somehow trigger the screenshot tests with a broken configuration, removing
|
||||
// any previous test results and not creating new ones. This is a workaround to disable the screenshot tests
|
||||
// when the `kover` tasks are detected.
|
||||
tasks.withType<Test>() {
|
||||
if (project.gradle.startParameter.taskNames.any { it.contains("kover", ignoreCase = true) }) {
|
||||
println("WARNING: Kover task detected, disabling screenshot test task $name.")
|
||||
isEnabled = false
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
testImplementation(libs.test.junit)
|
||||
testImplementation(libs.test.parameter.injector)
|
||||
|
||||
Reference in New Issue
Block a user