diff --git a/.github/workflows/nightlyReports.yml b/.github/workflows/nightlyReports.yml index cbe9935fc7..ef2c294f2e 100644 --- a/.github/workflows/nightlyReports.yml +++ b/.github/workflows/nightlyReports.yml @@ -26,11 +26,11 @@ jobs: distribution: 'temurin' # See 'Supported distributions' for available options java-version: '17' - - name: ⚙️ Run unit & screenshot tests, debug and release - run: ./gradlew test $CI_GRADLE_ARG_PROPERTIES -Pci-build=true + - name: ⚙️ Run unit tests, debug and release + run: ./gradlew test $CI_GRADLE_ARG_PROPERTIES - - name: ⚙️ Run unit & screenshot tests, generate kover report - run: ./gradlew koverMergedReport $CI_GRADLE_ARG_PROPERTIES -Pci-build=true + - name: 📈 Run screenshot tests, generate kover report and verify coverage + run: ./gradlew verifyPaparazziDebug koverMergedReport koverMergedVerify $CI_GRADLE_ARG_PROPERTIES -Pci-build=true - name: ✅ Upload kover report if: always() diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f5df6b1362..ffdd6f5ad7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -37,14 +37,11 @@ jobs: with: cache-read-only: ${{ github.ref != 'refs/heads/develop' }} - - name: ⚙️ Run unit & screenshot tests, debug and release - run: ./gradlew test $CI_GRADLE_ARG_PROPERTIES -Pci-build=true + - name: ⚙️ Run unit tests, debug and release + run: ./gradlew test $CI_GRADLE_ARG_PROPERTIES - - name: ⚙️ Run unit & screenshot tests, generate kover report - run: ./gradlew koverMergedReport $CI_GRADLE_ARG_PROPERTIES -Pci-build=true - - - name: 📈 Verify coverage - run: ./gradlew koverMergedVerify $CI_GRADLE_ARG_PROPERTIES -Pci-build=true + - name: 📈 Run screenshot tests, generate kover report and verify coverage + run: ./gradlew verifyPaparazziDebug koverMergedReport koverMergedVerify $CI_GRADLE_ARG_PROPERTIES -Pci-build=true - name: 🚫 Upload kover failed coverage reports if: failure() diff --git a/build.gradle.kts b/build.gradle.kts index b5d082b8ce..f8eda34bd8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -135,6 +135,15 @@ allprojects { allprojects { tasks.withType { maxParallelForks = (Runtime.getRuntime().availableProcessors() / 2).coerceAtLeast(1) + + val isScreenshotTest = project.gradle.startParameter.taskNames.any { it.contains("paparazzi", ignoreCase = true) } + if (isScreenshotTest) { + // Increase heap size for screenshot tests + maxHeapSize = "1g" + } else { + // Disable screenshot tests by default + exclude("**/ScreenshotTest*") + } } } @@ -245,9 +254,11 @@ koverMerged { excludes += "io.element.android.libraries.push.impl.notifications.NotificationState*" excludes += "io.element.android.features.messages.impl.media.local.pdf.PdfViewerState" excludes += "io.element.android.features.messages.impl.media.local.LocalMediaViewState" - excludes += "io.element.android.features.location.impl.map.MapState" + excludes += "io.element.android.features.location.impl.map.MapState*" excludes += "io.element.android.libraries.matrix.api.timeline.item.event.LocalEventSendState*" excludes += "io.element.android.libraries.designsystem.swipe.SwipeableActionsState*" + excludes += "io.element.android.features.messages.impl.timeline.components.ExpandableState*" + excludes += "io.element.android.features.messages.impl.timeline.model.bubble.BubbleState*" } bound { minValue = 90