diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 81cd370..ab6f222 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -17,4 +17,9 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Test with Gradle - run: ./gradlew test \ No newline at end of file + run: ./gradlew test + - name: Generate JaCoCo Badge + uses: cicirello/jacoco-badge-generator@v2 + with: + generate-branches-badge: true + jacoco-csv-file: generator/build/reports/jacoco/test/jacocoTestReport.csv \ No newline at end of file diff --git a/build.gradle b/build.gradle index f1579b2..aac6967 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,6 @@ allprojects { apply(plugin: 'java') + apply(plugin: 'jacoco') repositories { mavenCentral() @@ -11,6 +12,13 @@ allprojects { } } + test { + finalizedBy jacocoTestReport // report is always generated after tests run + } + jacocoTestReport { + dependsOn test // tests are required to run before generating the report + } + dependencies { testImplementation platform('org.junit:junit-bom:5.11.3') testImplementation 'org.junit.jupiter:junit-jupiter' diff --git a/generator/build.gradle b/generator/build.gradle index 66e47c3..96dd11e 100644 --- a/generator/build.gradle +++ b/generator/build.gradle @@ -5,6 +5,22 @@ plugins { group = 'com.reajason.javaweb.memsell' version = '1.0-SNAPSHOT' +jacocoTestReport { + reports { + html.required = true + csv.required = true + } + afterEvaluate { + classDirectories.setFrom(files(classDirectories.files.collect { + fileTree(dir: it, exclude: [ + 'com/reajason/javaweb/memsell/**/godzilla/**', + 'com/reajason/javaweb/memsell/**/injector/**', + 'com/reajason/javaweb/config/**' + ]) + })) + } +} + dependencies { implementation 'net.bytebuddy:byte-buddy:1.15.1' implementation 'javax.servlet:javax.servlet-api:3.0.1'