Skip to content

Commit

Permalink
Report code coverage in CI (#107)
Browse files Browse the repository at this point in the history
  • Loading branch information
JordanLongstaff authored Mar 4, 2025
1 parent 2a81525 commit 70d6c26
Show file tree
Hide file tree
Showing 3 changed files with 117 additions and 11 deletions.
123 changes: 114 additions & 9 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ jobs:
timeout-minutes: 60
permissions:
contents: read
checks: write
pull-requests: write

steps:
- uses: actions/checkout@v4
Expand All @@ -46,7 +44,7 @@ jobs:
dependency-graph-exclude-configurations: 'detachedConfiguration.*'

- name: Build with Gradle Wrapper
run: ./gradlew build
run: ./gradlew build koverXmlReport

# NOTE: The Gradle Wrapper is the default and recommended way to run Gradle (https://docs.gradle.org/current/userguide/gradle_wrapper.html).
# If your project does not have the Gradle Wrapper configured, you can use the following configuration to run Gradle with a specified version.
Expand All @@ -59,19 +57,126 @@ jobs:
# - name: Build with Gradle 8.5
# run: gradle build

- name: Publish Unit Test Results
uses: EnricoMi/publish-unit-test-result-action/[email protected]
- name: Upload Unit Test Results
uses: actions/upload-artifact@v4
if: always()
with:
check_name: Unit Test Results
files: |
name: Unit Test Results
path: |
${{ github.workspace }}/**/build/test-results/**/*.xml
!${{ github.workspace }}/**/konsist/build/test-results/**/*.xml
- name: Upload Konsist Test Results
uses: actions/upload-artifact@v4
if: always()
with:
name: Konsist Test Results
path: |
${{ github.workspace }}/**/konsist/build/test-results/**/*.xml
- name: Upload Code Coverage Reports
uses: actions/upload-artifact@v4
if: always()
with:
name: Code Coverage Reports
path: |
${{ github.workspace }}/**/build/reports/kover/report.xml
test-results:
needs: build
runs-on: ubuntu-latest
if: always()
permissions:
checks: write
pull-requests: write
steps:
- name: Download Unit Test Results
uses: actions/download-artifact@v4
with:
name: Unit Test Results
path: tests

- name: Download Konsist Test Results
uses: actions/download-artifact@v4
with:
name: Konsist Test Results
path: konsist

- name: Publish Unit Test Results
uses: EnricoMi/publish-unit-test-result-action/[email protected]
with:
check_name: Unit Test Results
files: tests/**/*.xml

- name: Publish Konsist Test Results
uses: EnricoMi/publish-unit-test-result-action/[email protected]
if: always()
with:
check_name: Konsist Test Results
files: |
${{ github.workspace }}/**/konsist/build/test-results/**/*.xml
files: konsist/**/*.xml

coverage:
needs: build
runs-on: ubuntu-latest
if: always()
strategy:
matrix:
module:
- app
- IAN
- IAN/enums
- IAN/listener
- IAN/packets
- IAN/udp
- IAN/util
- IAN/vesseldata
- IAN/world
permissions:
checks: write
pull-requests: write
steps:
- name: Download Code Coverage Reports
uses: actions/download-artifact@v4
with:
name: Code Coverage Reports
path: coverage

- name: Code Coverage (${{ matrix.module }})
uses: mi-kas/[email protected]
with:
title: Code Coverage (${{ matrix.module }})
path: coverage/${{ matrix.module }}/build/reports/kover/report.xml
token: ${{ secrets.GITHUB_TOKEN }}
update-comment: true
min-coverage-overall: ${{ matrix.module == 'app' && 0 || 90 }}

total-coverage:
needs: coverage
runs-on: ubuntu-latest
if: always()
permissions:
checks: write
pull-requests: write
steps:
- name: Download Code Coverage Reports
uses: actions/download-artifact@v4
with:
name: Code Coverage Reports
path: coverage

- name: Total Code Coverage
uses: mi-kas/[email protected]
with:
title: Total Code Coverage
path: |
coverage/app/build/reports/kover/report.xml
coverage/IAN/build/reports/kover/report.xml
coverage/IAN/enums/build/reports/kover/report.xml
coverage/IAN/listener/build/reports/kover/report.xml
coverage/IAN/packets/build/reports/kover/report.xml
coverage/IAN/udp/build/reports/kover/report.xml
coverage/IAN/util/build/reports/kover/report.xml
coverage/IAN/vesseldata/build/reports/kover/report.xml
coverage/IAN/world/build/reports/kover/report.xml
token: ${{ secrets.GITHUB_TOKEN }}
update-comment: true
4 changes: 2 additions & 2 deletions .github/workflows/instrumented-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,10 @@ jobs:
- name: Download Test Results
uses: actions/download-artifact@v4
with:
path: artifacts
path: tests

- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action/[email protected]
with:
check_name: Instrumented Test Results
files: artifacts/**/*.xml
files: tests/**/*.xml
1 change: 1 addition & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ plugins {
alias(libs.plugins.protobuf)
alias(libs.plugins.detekt)
alias(libs.plugins.ksp)
alias(libs.plugins.kover)
alias(libs.plugins.ktfmt)
alias(libs.plugins.dependency.analysis)
}
Expand Down

0 comments on commit 70d6c26

Please sign in to comment.