diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8d9cb069956..3e57785a794 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,4 +28,27 @@ jobs: - name: Build with Gradle uses: gradle/gradle-build-action@v2.4.2 with: - arguments: build --scan + arguments: build jacocoTestReport testCodeCoverageReport --scan + + - name: Upload coverage report + uses: actions/upload-artifact@v3 + with: + name: coverage-report + path: code-coverage-report/build/reports/jacoco/testCodeCoverageReport/testCodeCoverageReport.xml + + publish_coverage: + name: Publish coverage + runs-on: ubuntu-latest + needs: build + steps: + - name: Download coverage report + uses: actions/download-artifact@v3 + with: + name: coverage-report + path: code-coverage-report/build/reports/jacoco/testCodeCoverageReport + + - name: Run codacy-coverage-reporter + uses: codacy/codacy-coverage-reporter-action@v1.3.0 + with: + project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} + coverage-reports: ${{ github.workspace }}/code-coverage-report/build/reports/jacoco/testCodeCoverageReport/testCodeCoverageReport.xml diff --git a/build-logic/commons/src/main/groovy/bisq.java-conventions.gradle b/build-logic/commons/src/main/groovy/bisq.java-conventions.gradle index 87449d028eb..91bb9781914 100644 --- a/build-logic/commons/src/main/groovy/bisq.java-conventions.gradle +++ b/build-logic/commons/src/main/groovy/bisq.java-conventions.gradle @@ -1,5 +1,6 @@ plugins { id 'java' + id 'jacoco' } repositories { @@ -31,3 +32,10 @@ dependencies { test { useJUnitPlatform() } + +jacocoTestReport { + reports { + html.required = false + xml.required = true + } +} diff --git a/code-coverage-report/build.gradle b/code-coverage-report/build.gradle new file mode 100644 index 00000000000..5bb79dba625 --- /dev/null +++ b/code-coverage-report/build.gradle @@ -0,0 +1,26 @@ +plugins { + id 'base' + id 'jacoco-report-aggregation' +} + +repositories { + mavenCentral() + maven { url "https://jitpack.io" } +} + +dependencies { + jacocoAggregation project(':apitest') + jacocoAggregation project(':cli') + jacocoAggregation project(':daemon') + jacocoAggregation project(':desktop') + jacocoAggregation project(':seednode') + jacocoAggregation project(':statsnode') +} + +reporting { + reports { + testCodeCoverageReport(JacocoCoverageReport) { + testType = TestSuiteType.UNIT_TEST + } + } +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4830b7d27a3..87e35c2761b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -18,7 +18,7 @@ fontawesomefx-materialdesign-font = { strictly = '2.0.26-9.1.2' } fxmisc-easybind = { strictly = '1.0.3' } google-findbugs = { strictly = '3.0.2' } -google-gson = { strictly = '2.8.5' } +google-gson = { strictly = '2.8.6' } google-guava = { strictly = '30.1.1-jre' } google-guice = { strictly = '5.0.1' } diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 78be5ce9392..4e74fc28728 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -1197,6 +1197,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1717,6 +1754,14 @@ + + + + + + + + @@ -1725,6 +1770,14 @@ + + + + + + + + @@ -1733,6 +1786,14 @@ + + + + + + + + @@ -1741,6 +1802,14 @@ + + + + + + + + diff --git a/settings.gradle b/settings.gradle index 530d25e2f17..558941e4ec1 100644 --- a/settings.gradle +++ b/settings.gradle @@ -16,5 +16,6 @@ include 'desktop' include 'seednode' include 'statsnode' include 'apitest' +include 'code-coverage-report' rootProject.name = 'bisq'