diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f3aee33..cae3026 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,11 +1,13 @@ name: CI -on: [ push ] +on: [ push, pull_request ] jobs: deploy: env: REPO: ${{ github.event.repository.name }} runs-on: ubuntu-latest + permissions: + pull-requests: write steps: - name: Check out repository code uses: actions/checkout@v4 @@ -14,11 +16,21 @@ jobs: uses: actions/setup-java@v4 with: distribution: 'zulu' - java-version: '21' + java-version: '17' - name: Build Runner run: ./mvnw --no-transfer-progress clean verify -Pnative -Dquarkus.native.remote-container-build=true + - name: Add coverage to PR + id: jacoco + uses: madrapps/jacoco-report@v1.7.1 + with: + paths: ${{ github.workspace }}/**/target/coverage/jacoco.xml + token: ${{ secrets.GITHUB_TOKEN }} + min-coverage-overall: 40 + min-coverage-changed-files: 60 + title: ${{ env.REPO }} Coverage + - name: Build Container run: docker build -f src/main/docker/Dockerfile.native-micro -t ${{ env.REPO }} . diff --git a/.gitignore b/.gitignore index ad5e79f..c7fded2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,5 @@ *~ -searxng-docker.service -caddy -srv -searxng/uwsgi.ini - .idea target +pom.xml.versionsBackup diff --git a/pom.xml b/pom.xml index 5d2979b..2edf612 100644 --- a/pom.xml +++ b/pom.xml @@ -14,9 +14,10 @@ UTF-8 quarkus-bom io.quarkus.platform - 3.15.1 + 3.16.0.CR1 true - 3.3.1 + 3.5.1 + 0.8.12 @@ -74,6 +75,11 @@ ${kotlin.version} test + + io.quarkus + quarkus-jacoco + test + @@ -109,6 +115,11 @@ org.jboss.logmanager.LogManager + ${maven.multiModuleProjectDirectory}/target/jacoco.exec + + true + ${maven.multiModuleProjectDirectory}/target/coverage + ${maven.home} @@ -130,9 +141,49 @@ org.jboss.logmanager.LogManager ${maven.home} + ${argLine} + + org.jacoco + jacoco-maven-plugin + ${jacoco.version} + + + default-prepare-agent + + prepare-agent + + + *QuarkusClassLoader + ${project.build.directory}/jacoco-quarkus.exec + true + + + + default-prepare-agent-integration + + prepare-agent-integration + + + ${project.build.directory}/jacoco-quarkus.exec + true + + + + report + post-integration-test + + report + + + ${project.build.directory}/jacoco-quarkus.exec + ${project.build.directory}/jacoco-report + + + + org.jetbrains.kotlin kotlin-maven-plugin diff --git a/src/test/kotlin/de/arindy/mythodea/api/MythodeaDateResourceTest.kt b/src/test/kotlin/de/arindy/mythodea/api/MythodeaDateResourceTest.kt new file mode 100644 index 0000000..1b1358f --- /dev/null +++ b/src/test/kotlin/de/arindy/mythodea/api/MythodeaDateResourceTest.kt @@ -0,0 +1,27 @@ +package de.arindy.mythodea.api + +import io.quarkus.test.junit.QuarkusTest +import io.restassured.RestAssured.given +import org.hamcrest.Matchers.`is` +import org.junit.jupiter.api.Test +import java.time.Instant + +@QuarkusTest +class MythodeaDateResourceTest { + + @Test + fun testFromEndpoint() { + given().`when`() + .queryParams( + "epochMillis", Instant.parse("2024-10-23T00:00:00+01:00").toEpochMilli() + ).get("/date/from/") + .then() + .statusCode(200) + .body("dayString", `is`("3. Mahntag")) + .body("monthString", `is`("Holzmond")) + .body("year", `is`(22)) + .body("yearNDE", `is`(23)) + .body("yearNDK", `is`(3)) + } + +}