mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-02 12:07:28 +00:00
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
e75438a8e3
commit
8865cc2b57
@@ -29,8 +29,11 @@ jobs:
|
|||||||
- name: ⚙️ Run unit tests, debug and release
|
- name: ⚙️ Run unit tests, debug and release
|
||||||
run: ./gradlew test $CI_GRADLE_ARG_PROPERTIES
|
run: ./gradlew test $CI_GRADLE_ARG_PROPERTIES
|
||||||
|
|
||||||
- name: 📈 Run screenshot tests, generate kover report and verify coverage
|
- name: 📸 Run screenshot tests
|
||||||
run: ./gradlew verifyPaparazziDebug koverMergedReport koverMergedVerify $CI_GRADLE_ARG_PROPERTIES -Pci-build=true
|
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
|
- name: ✅ Upload kover report
|
||||||
if: always()
|
if: always()
|
||||||
|
|||||||
@@ -51,6 +51,12 @@ jobs:
|
|||||||
name: linting-report
|
name: linting-report
|
||||||
path: |
|
path: |
|
||||||
*/build/reports/**/*.*
|
*/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
|
- name: Prepare Danger
|
||||||
if: always()
|
if: always()
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -40,8 +40,11 @@ jobs:
|
|||||||
- name: ⚙️ Run unit tests, debug and release
|
- name: ⚙️ Run unit tests, debug and release
|
||||||
run: ./gradlew test $CI_GRADLE_ARG_PROPERTIES
|
run: ./gradlew test $CI_GRADLE_ARG_PROPERTIES
|
||||||
|
|
||||||
- name: 📈 Run screenshot tests, generate kover report and verify coverage
|
- name: 📸 Run screenshot tests
|
||||||
run: ./gradlew verifyPaparazziDebug koverMergedReport koverMergedVerify $CI_GRADLE_ARG_PROPERTIES -Pci-build=true
|
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
|
- name: 🚫 Upload kover failed coverage reports
|
||||||
if: failure()
|
if: failure()
|
||||||
@@ -80,13 +83,6 @@ jobs:
|
|||||||
**/out/failures/
|
**/out/failures/
|
||||||
**/build/reports/tests/*UnitTest/
|
**/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
|
# https://github.com/codecov/codecov-action
|
||||||
- name: ☂️ Upload coverage reports to codecov
|
- name: ☂️ Upload coverage reports to codecov
|
||||||
if: always()
|
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
|
// When running on the CI, run only debug test variants
|
||||||
val ciBuildProperty = "ci-build"
|
val ciBuildProperty = "ci-build"
|
||||||
val isCiBuild = if (project.hasProperty(ciBuildProperty)) {
|
val isCiBuild = if (project.hasProperty(ciBuildProperty)) {
|
||||||
|
|||||||
@@ -28,6 +28,16 @@ android {
|
|||||||
namespace = "io.element.android.tests.uitests"
|
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 {
|
dependencies {
|
||||||
testImplementation(libs.test.junit)
|
testImplementation(libs.test.junit)
|
||||||
testImplementation(libs.test.parameter.injector)
|
testImplementation(libs.test.parameter.injector)
|
||||||
|
|||||||
Reference in New Issue
Block a user