Repository: micronaut-projects/micronaut-test (java)

Issue:
kotest-bom should be used to manage kotest versions
### Feature description

Since version 5.x, kotest framework has a bom published: https://repo1.maven.org/maven2/io/kotest/kotest-bom/
Micronaut should use the bom to manage kotest versions. 
Especially taking into account that kotest has additional projects that are not managed by micronaut, but used by end users, like kotest-property. This requires from used to keep the versions of their additional kotest dependencies in sync with kotest modules brought by micronaut.

Pull request description:
Use and export kotest-bom for kotest dependencies management
micronaut-test-kotest5 now uses and exposes kotest-bom

Related PR into micronaut-platform: https://github.com/micronaut-projects/micronaut-platform/pull/901
Closes #843

Patch:
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index f2100cce..4158245e 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -91,7 +91,7 @@ jobs:
         if: success()
         uses: micronaut-projects/github-pages-deploy-action@master
         env:
-          BETA: ${{ contains(steps.release_version.outputs.release_version, 'M') || contains(steps.release_version.outputs.release_version, 'RC') }}
+          BETA: ${{ !(github.event.release.target_commitish == github.event.repository.default_branch) || contains(steps.release_version.outputs.release_version, 'M') || contains(steps.release_version.outputs.release_version, 'RC') }}
           GH_TOKEN: ${{ secrets.GH_TOKEN }}
           BRANCH: gh-pages
           FOLDER: build/docs
@@ -100,21 +100,6 @@ jobs:
           GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
           GRADLE_ENTERPRISE_CACHE_USERNAME: ${{ secrets.GRADLE_ENTERPRISE_CACHE_USERNAME }}
           GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }}
-      - name: Checkout micronaut-core
-        uses: actions/checkout@v3
-        with:
-          token: ${{ secrets.GH_TOKEN }}
-          repository: micronaut-projects/micronaut-core
-          ref: ${{ env.githubCoreBranch }}
-          path: micronaut-core # Must be micronaut-core
-        continue-on-error: true
-      - name: Update BOM
-        uses: micronaut-projects/github-actions/update-bom@master
-        env:
-          MICRONAUT_BUILD_EMAIL: ${{ secrets.MICRONAUT_BUILD_EMAIL }}
-        with:
-          token: ${{ secrets.GH_TOKEN }}
-        continue-on-error: true
       - name: Run post-release
         if: success()
         uses: micronaut-projects/github-actions/post-release@master
@@ -161,7 +146,7 @@ jobs:
     if: startsWith(github.ref, 'refs/tags/')
     steps:
       - name: Checkout repository
-        uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
+        uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
       - name: Download artifacts
         uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
         with:
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index ea7f8831..2a7109dd 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -6,20 +6,20 @@ groovy = "4.0.11"
 
 managed-assertj = "3.24.2"
 managed-hamcrest = "2.2"
-managed-mockito = "5.3.1"
+managed-mockito = "5.5.0"
 managed-mockk = "1.13.7"
-managed-junit = "5.9.3"
+managed-junit = "5.10.0"
 managed-rest-assured = "5.3.2"
-managed-kotest = "5.6.2"
+managed-kotest = "5.7.2"
 managed-spock = "2.3-groovy-4.0"
 
-kotlin = "1.8.22"
+kotlin = "1.9.10"
 graal-svm = "23.0.1"
 
 micronaut-data = "4.1.2"
-micronaut-hibernate-validator = "4.0.1"
+micronaut-hibernate-validator = "4.0.2"
 micronaut-serde = "2.2.4"
-micronaut-spring = "5.0.0"
+micronaut-spring = "5.0.2"
 micronaut-sql = "5.0.1"
 micronaut-reactor = "3.0.2"
 
@@ -41,11 +41,13 @@ managed-hamcrest = { module = "org.hamcrest:hamcrest", version.ref = "managed-ha
 managed-mockito-core = { module = "org.mockito:mockito-core", version.ref = "managed-mockito" }
 managed-mockito-junit-jupiter = { module = "org.mockito:mockito-junit-jupiter", version.ref = "managed-mockito" }
 managed-mockk = { module = "io.mockk:mockk", version.ref = "managed-mockk" }
+# TODO kotest libs should stop be directly managed, boms-kotest should define the versions
 managed-kotest-assertions-core-jvm = { module = "io.kotest:kotest-assertions-core-jvm", version.ref = "managed-kotest" }
 managed-kotest-runner-junit5-jvm = { module = "io.kotest:kotest-runner-junit5-jvm", version.ref = "managed-kotest" }
 
 # BOMs
 boms-junit = { module = "org.junit:junit-bom", version.ref = "managed-junit" }
+boms-kotest = { module = "io.kotest:kotest-bom", version.ref = "managed-kotest" }
 boms-spock = { module = "org.spockframework:spock-bom", version.ref = "managed-spock" }
 boms-rest-assured = { module = "io.rest-assured:rest-assured-bom", version.ref = "managed-rest-assured" }
 


Test patch:
diff --git a/test-bom/build.gradle b/test-bom/build.gradle
index dd0e4ad8..a18fe65c 100644
--- a/test-bom/build.gradle
+++ b/test-bom/build.gradle
@@ -2,6 +2,10 @@ plugins {
     id "io.micronaut.build.internal.bom"
 }
 
+repositories {
+    gradlePluginPortal() // needed for checkBom task to resolve plugin dependencies defined in kotest-pom
+}
+
 micronautBom {
     suppressions {
         acceptedLibraryRegressions.add("micronaut-test-kotest")
diff --git a/test-kotest5/build.gradle b/test-kotest5/build.gradle
index c2929972..393787dc 100644
--- a/test-kotest5/build.gradle
+++ b/test-kotest5/build.gradle
@@ -7,6 +7,7 @@ plugins {
 dependencies {
     api projects.micronautTestCore
     api(mn.micronaut.context)
+    api(platform(libs.boms.kotest))
     api(libs.managed.kotest.runner.junit5.jvm)
 
     implementation(mn.micronaut.inject)