diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index f3aee33..a005355 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,13 +16,25 @@ 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
+ if: github.ref_name == 'main'
run: docker build -f src/main/docker/Dockerfile.native-micro -t ${{ env.REPO }} .
- name: Deploy
+ if: github.ref_name == 'main'
run: "docker compose up -d"
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))
+ }
+
+}