From 0d1d876baa8f0b1a211e5a667046a7e31e400567 Mon Sep 17 00:00:00 2001 From: Ruben Taelman Date: Mon, 2 Dec 2024 10:57:23 +0100 Subject: [PATCH] Measure game test coverage --- .github/workflows/ci.yml | 9 ++--- README.md | 1 + build.gradle | 1 - .../src/main/groovy/multiloader-common.gradle | 11 ++++-- .../groovy/multiloader-loader-fabric.gradle | 10 +++++ .../groovy/multiloader-loader-neoforge.gradle | 37 +++++++++++++------ 6 files changed, 46 insertions(+), 23 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a0094382..e717ae94 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,12 +55,9 @@ jobs: GITHUB_USER: ${{ github.actor }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: 'Test' - env: - COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} - if: ${{ env.COVERALLS_REPO_TOKEN }} - run: ./gradlew test jacocoTestReport coveralls - - name: 'Game Test' - run: ./gradlew runGameTestServer -x :loader-forge:downloadAssets + run: ./gradlew test runGameTestServer jacocoTestReport -x :loader-forge:downloadAssets + - name: 'Submit coverage results' + uses: coverallsapp/github-action@v2 - name: 'Deploy as GitHub CI artifacts' uses: actions/upload-artifact@v4 with: diff --git a/README.md b/README.md index c6f705e7..1c5619b7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ ## Colossal Chests [![Build Status](https://github.com/CyclopsMC/ColossalChests/workflows/CI/badge.svg)](https://github.com/CyclopsMC/ColossalChests/actions?query=workflow%3ACI) +[![Coverage Status](https://coveralls.io/repos/github/CyclopsMC/ColossalChests/badge.svg)](https://coveralls.io/github/CyclopsMC/ColossalChests) [![Download](https://img.shields.io/static/v1?label=Maven&message=GitHub%20Packages&color=blue)](https://github.com/CyclopsMC/packages/packages/770015) [![CurseForge](http://cf.way2muchnoise.eu/full_237875_downloads.svg)](https://www.curseforge.com/minecraft/mc-mods/colossal-chests) [![Discord](https://img.shields.io/discord/386052815128100865.svg?colorB=7289DA&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHYAAABWAgMAAABnZYq0AAAACVBMVEUAAB38%2FPz%2F%2F%2F%2Bm8P%2F9AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfhBxwQJhxy2iqrAAABoElEQVRIx7WWzdGEIAyGgcMeKMESrMJ6rILZCiiBg4eYKr%2Fd1ZAfgXFm98sJfAyGNwno3G9sLucgYGpQ4OGVRxQTREMDZjF7ILSWjoiHo1n%2BE03Aw8p7CNY5IhkYd%2F%2F6MtO3f8BNhR1QWnarCH4tr6myl0cWgUVNcfMcXACP1hKrGMt8wcAyxide7Ymcgqale7hN6846uJCkQxw6GG7h2MH4Czz3cLqD1zHu0VOXMfZjHLoYvsdd0Q7ZvsOkafJ1P4QXxrWFd14wMc60h8JKCbyQvImzlFjyGoZTKzohwWR2UzSONHhYXBQOaKKsySsahwGGDnb%2FiYPJw22sCqzirSULYy1qtHhXGbtgrM0oagBV4XiTJok3GoLoDNH8ooTmBm7ZMsbpFzi2bgPGoXWXME6XT%2BRJ4GLddxJ4PpQy7tmfoU2HPN6cKg%2BledKHBKlF8oNSt5w5g5o8eXhu1IOlpl5kGerDxIVT%2BztzKepulD8utXqpChamkzzuo7xYGk%2FkpSYuviLXun5bzdRf0Krejzqyz7Z3p0I1v2d6HmA07dofmS48njAiuMgAAAAASUVORK5CYII%3D)](https://discord.gg/9yDxubB) diff --git a/build.gradle b/build.gradle index aa2b9ab7..f16b8153 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,5 @@ plugins { id 'net.darkhax.curseforgegradle' version '1.0.8' apply false - id 'com.github.kt3k.coveralls' version '2.12.0' apply false id 'com.diffplug.spotless' version '6.25.0' apply false id 'com.modrinth.minotaur' version '2.+' apply false diff --git a/buildSrc/src/main/groovy/multiloader-common.gradle b/buildSrc/src/main/groovy/multiloader-common.gradle index 78885d89..c7c77974 100644 --- a/buildSrc/src/main/groovy/multiloader-common.gradle +++ b/buildSrc/src/main/groovy/multiloader-common.gradle @@ -4,7 +4,6 @@ plugins { id 'java-library' id 'maven-publish' id 'jacoco' - id 'com.github.kt3k.coveralls' id 'com.diffplug.spotless' } @@ -291,6 +290,11 @@ tasks.configureEach { task -> } } +javadoc { + // prevent java 8's strict doclint for javadocs from failing builds + options.addStringOption('Xdoclint:accessibility,html,reference,syntax', '-quiet') +} + jacocoTestReport { reports { xml.required = true @@ -298,7 +302,6 @@ jacocoTestReport { } } -javadoc { - // prevent java 8's strict doclint for javadocs from failing builds - options.addStringOption('Xdoclint:accessibility,html,reference,syntax', '-quiet') +jacoco { + toolVersion = "0.8.12" } diff --git a/buildSrc/src/main/groovy/multiloader-loader-fabric.gradle b/buildSrc/src/main/groovy/multiloader-loader-fabric.gradle index 5e2372e3..d7df24ac 100644 --- a/buildSrc/src/main/groovy/multiloader-loader-fabric.gradle +++ b/buildSrc/src/main/groovy/multiloader-loader-fabric.gradle @@ -52,6 +52,16 @@ task runGameTestServer { dependsOn tasks.runGameTest } +// Measure coverage for game tests +jacoco { + applyTo runGameTest +} +jacocoTestReport { + dependsOn test, runGameTest + // Include unit and game test coverage + executionData fileTree(project.buildDir).include("jacoco/*.exec") +} + publishing { publications { PublicationContainer publicationContainer -> publicationContainer.getByName("maven") { MavenPublication publication -> diff --git a/buildSrc/src/main/groovy/multiloader-loader-neoforge.gradle b/buildSrc/src/main/groovy/multiloader-loader-neoforge.gradle index e0eb0c81..af521fdb 100644 --- a/buildSrc/src/main/groovy/multiloader-loader-neoforge.gradle +++ b/buildSrc/src/main/groovy/multiloader-loader-neoforge.gradle @@ -76,17 +76,30 @@ runs { } } -tasks.register('signJar').configure { - dependsOn(tasks.jar) - - onlyIf { - System.getenv().SIGN_KEYSTORE +// Disabled because signed jars are not being checked anyways +//tasks.register('signJar').configure { +// dependsOn(tasks.jar) +// +// onlyIf { +// System.getenv().SIGN_KEYSTORE +// } +// +// keyStore = System.getenv().SIGN_KEYSTORE +// alias = System.getenv().SIGN_ALIAS +// storePass = System.getenv().SIGN_STOREPASS +// keyPass = System.getenv().SIGN_KEYPASS +// input = jar.archivePath +// output = jar.archivePath +//} + +// Measure coverage for game tests +tasks.whenTaskAdded { task -> + if (task.name.equals('runGameTestServer')) { + jacocoTestReport.dependsOn test, task + jacoco.applyTo(task) } - - keyStore = System.getenv().SIGN_KEYSTORE - alias = System.getenv().SIGN_ALIAS - storePass = System.getenv().SIGN_STOREPASS - keyPass = System.getenv().SIGN_KEYPASS - input = jar.archivePath - output = jar.archivePath +} +jacocoTestReport { + // Include unit and game test coverage + executionData fileTree(project.buildDir).include("jacoco/*.exec") }