diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index dd12fd6..73fdfce 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -46,7 +46,7 @@ jobs: ${{ runner.os }}-gradle-${{ matrix.java-version }}- - name: Test with Gradle - run: ./gradlew build check --stacktrace + run: ./gradlew build check --stacktrace -PtestsBadgeApiKey=${{ secrets.TESTS_BADGE_API_KEY }} - name: SonarCloud if: success() && matrix.java-version == env.SONAR_JDK diff --git a/README.md b/README.md index d9d421b..2849d48 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,11 @@ [![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Nexus Snapshot](https://img.shields.io/nexus/s/net.thauvin.erik/urlencoder?server=https%3A%2F%2Foss.sonatype.org%2F)](https://oss.sonatype.org/content/repositories/snapshots/net/thauvin/erik/urlencoder/) +[![Release](https://img.shields.io/github/release/ethauvin/urlencoder.svg)](https://github.com/ethauvin/urlencoder/releases/latest) +[![Maven Central](https://maven-badges.herokuapp.com/maven-central/net.thauvin.erik/urlencoder/badge.svg?color=blue)](https://maven-badges.herokuapp.com/maven-central/net.thauvin.erik/urlencoder) -[//]: # ([![Release](https://img.shields.io/github/release/ethauvin/urlencoder.svg)](https://github.com/ethauvin/urlencoder/releases/latest)) -[//]: # ([![Maven Central](https://maven-badges.herokuapp.com/maven-central/net.thauvin.erik/urlencoder/badge.svg?color=blue)](https://maven-badges.herokuapp.com/maven-central/net.thauvin.erik/urlencoder)) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=ethauvin_urlencoder&metric=alert_status)](https://sonarcloud.io/dashboard?id=ethauvin_urlencoder) [![GitHub CI](https://github.com/ethauvin/urlencoder/actions/workflows/gradle.yml/badge.svg)](https://github.com/ethauvin/urlencoder/actions/workflows/gradle.yml) +[![Tests](https://rife2.com/tests-badge/badge/net.thauvin.erik/urlencoder)](https://github.com/ethauvin/urlencoder/actions/workflows/gradle.yml) # URL Encoder for Kotlin and Java diff --git a/lib/build.gradle.kts b/lib/build.gradle.kts index d784638..a23edd8 100644 --- a/lib/build.gradle.kts +++ b/lib/build.gradle.kts @@ -2,6 +2,11 @@ import org.gradle.api.tasks.testing.logging.TestExceptionFormat import org.gradle.api.tasks.testing.logging.TestLogEvent import org.jetbrains.dokka.gradle.DokkaTask import org.jetbrains.kotlin.gradle.tasks.KotlinCompile +import java.net.URI +import java.net.http.HttpClient +import java.net.http.HttpRequest +import java.net.http.HttpResponse + plugins { id("application") @@ -82,6 +87,39 @@ tasks { test { useJUnitPlatform() + addTestListener(object : TestListener { + override fun beforeTest(p0: TestDescriptor?) = Unit + override fun beforeSuite(p0: TestDescriptor?) = Unit + override fun afterTest(desc: TestDescriptor, result: TestResult) = Unit + override fun afterSuite(desc: TestDescriptor, result: TestResult) { + if (desc.parent == null) { + val passed = result.successfulTestCount + val failed = result.failedTestCount + val skipped = result.skippedTestCount + + if (project.properties["testsBadgeApiKey"] != null) { + val apiKey = project.properties["testsBadgeApiKey"] + val response: HttpResponse = HttpClient.newHttpClient() + .send( + HttpRequest.newBuilder() + .uri( + URI( + "https://rife2.com/tests-badge/update/com.uwyn/urlencoder?" + + "apiKey=$apiKey&" + + "passed=$passed&" + + "failed=$failed&" + + "skipped=$skipped" + ) + ) + .POST(HttpRequest.BodyPublishers.noBody()) + .build(), HttpResponse.BodyHandlers.ofString() + ) + println("RESPONSE: ${response.statusCode()}") + println(response.body()) + } + } + } + }) } withType {