diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index be50317..6dbbb4d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ 'jobs': 'jvm': 'name': 'JVM' - 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/jvm-ci.yml@v0.8.1' + 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/jvm-ci.yml@v0.10.2' 'with': 'lint-gradle-args': ':api:detektMain :api:detektTest :api:detektIntegrationTest :api:ktlintCheck' 'test-gradle-args': ':api:test :api:integrationTest :api:jacocoTestCoverageVerification :api:exportOpenApiSpec' @@ -28,32 +28,35 @@ 'python-lint': 'name': 'Python Lint' - 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/python-ci.yml@v0.8.1' + 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/python-ci.yml@v0.10.2' 'with': 'python-version': '3.12' 'working-directory': 'ingest-worker' 'install-command': 'python -m pip install uv==0.7.8 && uv sync --frozen' - 'lint-command': 'uv run ruff check . && uv run mypy' + 'lint-command': 'uv run ruff check .' + 'typecheck-command': 'uv run mypy' 'test-command': '' 'python-unit': 'name': 'Python Unit' - 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/python-ci.yml@v0.8.1' + 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/python-ci.yml@v0.10.2' 'with': 'python-version': '3.12' 'working-directory': 'ingest-worker' 'install-command': 'python -m pip install uv==0.7.8 && uv sync --frozen' 'lint-command': '' + 'typecheck-command': '' 'test-command': 'uv run pytest --cov' 'python-integration': 'name': 'Python Integration' - 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/python-ci.yml@v0.8.1' + 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/python-ci.yml@v0.10.2' 'with': 'python-version': '3.12' 'working-directory': 'ingest-worker' 'install-command': 'python -m pip install uv==0.7.8 && uv sync --frozen' 'lint-command': '' + 'typecheck-command': '' 'test-command': 'uv run pytest -m integration' 'contract': @@ -112,7 +115,7 @@ 'client-dry-run': 'name': 'Client Dry Run' - 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/publish-api-clients.yml@v0.8.1' + 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/publish-api-clients.yml@v0.10.2' 'permissions': 'contents': 'read' 'packages': 'write' @@ -164,7 +167,7 @@ 'deploy-bundle': 'name': 'Deploy Bundle Dry Run' - 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/deploy-bundle.yml@v0.8.1' + 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/deploy-bundle.yml@v0.10.2' 'permissions': 'contents': 'read' 'packages': 'write' @@ -180,7 +183,7 @@ 'migration-guard': 'name': 'Migration Guard' - 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/migration-guard.yml@v0.8.1' + 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/migration-guard.yml@v0.10.2' 'with': 'migration-regex': 'api/src/main/resources/db/migration(-pg)?/V(1[3-9]|[2-9][0-9]|[1-9][0-9]{2,})[^/]*\.sql$' 'scope-regex': '(api/src/main/resources/db)/.*' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b7a8120..860d1a0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -76,7 +76,7 @@ 'name': 'Publish API Clients' 'needs': 'release-please' 'if': '${{ needs.release-please.outputs.release_created == ''true'' }}' - 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/publish-api-clients.yml@v0.8.1' + 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/publish-api-clients.yml@v0.10.2' 'permissions': 'contents': 'read' 'packages': 'write' @@ -101,7 +101,7 @@ - 'release-please' - 'publish-images' 'if': '${{ needs.release-please.outputs.release_created == ''true'' }}' - 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/deploy-bundle.yml@v0.8.1' + 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/deploy-bundle.yml@v0.10.2' 'permissions': 'contents': 'read' 'packages': 'write' diff --git a/.github/workflows/repository-hygiene.yml b/.github/workflows/repository-hygiene.yml index 20f7a63..0f69cb1 100644 --- a/.github/workflows/repository-hygiene.yml +++ b/.github/workflows/repository-hygiene.yml @@ -9,7 +9,7 @@ 'jobs': 'repository-hygiene': - 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/repository-hygiene-guard.yml@v0.8.1' + 'uses': 'JorisJonkers-dev/github-workflows/.github/workflows/repository-hygiene-guard.yml@v0.10.2' 'with': 'allowlist-regex': '' 'secrets': 'inherit' diff --git a/api/build.gradle.kts b/api/build.gradle.kts index 426324c..772bdac 100644 --- a/api/build.gradle.kts +++ b/api/build.gradle.kts @@ -1,6 +1,8 @@ import org.gradle.testing.jacoco.plugins.JacocoTaskExtension plugins { + alias(libs.plugins.kotlin.jvm) + alias(libs.plugins.kotlin.spring) alias(libs.plugins.jorisjonkers.spring) alias(libs.plugins.jorisjonkers.detekt) alias(libs.plugins.jorisjonkers.ktlint) @@ -8,6 +10,17 @@ plugins { alias(libs.plugins.jorisjonkers.jooq.codegen) } +val kotlinVersion = libs.versions.kotlin.get() + +configurations.matching { it.name == "detekt" }.configureEach { + resolutionStrategy.eachDependency { + if (requested.group == "org.jetbrains.kotlin" && requested.name == "kotlin-compiler-embeddable") { + useVersion(kotlinVersion) + because("detekt 2.0.0-alpha.3 is compiled with Kotlin $kotlinVersion") + } + } +} + jooqCodegen { schemaName.set("PUBLIC") packageName.set("com.jorisjonkers.personalstack.knowledge.jooq") diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6871693..d294f49 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,7 @@ [versions] jorisjonkers-commons = "0.7.0" -jorisjonkers-conventions = "0.5.1" +jorisjonkers-conventions = "0.7.0" +kotlin = "2.3.21" [libraries] kotlin-commons-archunit-test = { module = "dev.jorisjonkers:kotlin-commons-archunit-test", version.ref = "jorisjonkers-commons" } @@ -18,6 +19,8 @@ kotlin-commons-vault = { module = "dev.jorisjonkers:kotlin-commons-vault", versi kotlin-commons-web = { module = "dev.jorisjonkers:kotlin-commons-web", version.ref = "jorisjonkers-commons" } [plugins] +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +kotlin-spring = { id = "org.jetbrains.kotlin.plugin.spring", version.ref = "kotlin" } jorisjonkers-kotlin = { id = "dev.jorisjonkers.kotlin", version.ref = "jorisjonkers-conventions" } jorisjonkers-detekt = { id = "dev.jorisjonkers.detekt", version.ref = "jorisjonkers-conventions" } jorisjonkers-ktlint = { id = "dev.jorisjonkers.ktlint", version.ref = "jorisjonkers-conventions" }