ci: fix coverage report paths and improve test result inclusivity (#4245)

This commit is contained in:
James Rich 2026-01-16 13:40:50 -06:00 committed by GitHub
parent fe9c8dac83
commit 46a2c68830
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 44 additions and 4 deletions

View file

@ -69,7 +69,7 @@ jobs:
echo "datadogApplicationId=$DATADOG_APPLICATION_ID" >> ./secrets.properties
echo "datadogClientToken=$DATADOG_CLIENT_TOKEN" >> ./secrets.properties
- name: Run Spotless, Detekt, Build, Lint, and Local Tests
run: ./gradlew spotlessCheck detekt assembleDebug :app:testFdroidDebugUnitTest :app:testGoogleDebugUnitTest :core:analytics:testFdroidDebugUnitTest :core:analytics:testGoogleDebugUnitTest :core:data:testFdroidDebugUnitTest :core:data:testGoogleDebugUnitTest :core:database:testFdroidDebugUnitTest :core:database:testGoogleDebugUnitTest :core:datastore:testFdroidDebugUnitTest :core:datastore:testGoogleDebugUnitTest :core:di:testFdroidDebugUnitTest :core:di:testGoogleDebugUnitTest :core:model:testFdroidDebugUnitTest :core:model:testGoogleDebugUnitTest :core:navigation:testFdroidDebugUnitTest :core:navigation:testGoogleDebugUnitTest :core:network:testFdroidDebugUnitTest :core:network:testGoogleDebugUnitTest :core:prefs:testFdroidDebugUnitTest :core:prefs:testGoogleDebugUnitTest :core:proto:testFdroidDebugUnitTest :core:proto:testGoogleDebugUnitTest :core:service:testFdroidDebugUnitTest :core:service:testGoogleDebugUnitTest :core:ui:testFdroidDebugUnitTest :core:ui:testGoogleDebugUnitTest :feature:firmware:testFdroidDebugUnitTest :feature:firmware:testGoogleDebugUnitTest :feature:intro:testFdroidDebugUnitTest :feature:intro:testGoogleDebugUnitTest :feature:map:testFdroidDebugUnitTest :feature:map:testGoogleDebugUnitTest :feature:messaging:testFdroidDebugUnitTest :feature:messaging:testGoogleDebugUnitTest :feature:node:testFdroidDebugUnitTest :feature:node:testGoogleDebugUnitTest :feature:settings:testFdroidDebugUnitTest :feature:settings:testGoogleDebugUnitTest :mesh_service_example:testDebugUnitTest koverXmlReport --configuration-cache --scan
run: ./gradlew spotlessCheck detekt assembleDebug runAllDebugTests koverXmlReport --configuration-cache --scan
env:
VERSION_CODE: ${{ env.VERSION_CODE }}
@ -78,6 +78,8 @@ jobs:
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: meshtastic/Meshtastic-Android
report_type: coverage
directory: .
files: build/reports/kover/report.xml
- name: Upload test results to Codecov
@ -86,6 +88,8 @@ jobs:
with:
token: ${{ secrets.CODECOV_TOKEN }}
report_type: test_results
directory: .
files: "**/build/test-results/**/*.xml,**/build/outputs/androidTest-results/**/*.xml"
- name: Upload F-Droid debug artifact
if: ${{ inputs.upload_artifacts }}
@ -108,6 +112,6 @@ jobs:
with:
name: upload-reports
path: |
app/build/reports
**/build/reports/detekt
build/reports
**/build/reports
retention-days: 14

View file

@ -31,6 +31,7 @@ jobs:
uses: actions/checkout@v6
with:
submodules: 'recursive'
fetch-depth: 0
- name: Set up JDK 21
uses: actions/setup-java@v5
@ -85,13 +86,14 @@ jobs:
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: ./gradlew :app:connectedFdroidDebugAndroidTest :app:connectedGoogleDebugAndroidTest :core:database:connectedFdroidDebugAndroidTest :core:database:connectedGoogleDebugAndroidTest :core:model:connectedFdroidDebugAndroidTest :core:model:connectedGoogleDebugAndroidTest :core:ui:connectedFdroidDebugAndroidTest :core:ui:connectedGoogleDebugAndroidTest :feature:messaging:connectedFdroidDebugAndroidTest :feature:messaging:connectedGoogleDebugAndroidTest :feature:settings:connectedFdroidDebugAndroidTest :feature:settings:connectedGoogleDebugAndroidTest koverXmlReport --configuration-cache --scan && ( killall -INT crashpad_handler || true )
script: ./gradlew runAllConnectedDebugTests koverXmlReport --configuration-cache --scan && ( killall -INT crashpad_handler || true )
- name: Upload coverage reports to Codecov
if: ${{ !cancelled() }}
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
report_type: coverage
slug: meshtastic/Meshtastic-Android
files: build/reports/kover/report.xml
@ -101,6 +103,8 @@ jobs:
with:
token: ${{ secrets.CODECOV_TOKEN }}
report_type: test_results
directory: .
files: "**/build/test-results/**/*.xml,**/build/outputs/androidTest-results/**/*.xml"
- name: Upload Test Results
if: ${{ always() && inputs.upload_artifacts }}

View file

@ -48,3 +48,35 @@ plugins {
dependencies {
dokkaPlugin(libs.dokka.android.documentation.plugin)
}
val debugTests = listOf(
"testDebugUnitTest",
"testFdroidDebugUnitTest",
"testGoogleDebugUnitTest"
)
tasks.register("runAllDebugTests") {
group = "verification"
description = "Runs all unit tests for debug variants and flavors"
dependsOn(subprojects.map { subproject ->
subproject.tasks.matching { task ->
task.name in debugTests
}
})
}
val connectedTests = listOf(
"connectedDebugAndroidTest",
"connectedFdroidDebugAndroidTest",
"connectedGoogleDebugAndroidTest"
)
tasks.register("runAllConnectedDebugTests") {
group = "verification"
description = "Runs all connected tests for debug variants and flavors"
dependsOn(subprojects.map { subproject ->
subproject.tasks.matching { task ->
task.name in connectedTests
}
})
}