From f825f5bd1da1cc3e4e69f6de3d707b373cbf1a73 Mon Sep 17 00:00:00 2001 From: Dean Wette Date: Wed, 21 Dec 2022 11:36:04 -0600 Subject: [PATCH] Migrate to build plugins 6.1.1, update version catalog and dependencies to correspond to changed bom/platform architecture, misc build fixes. (#641) --- .github/workflows/graalvm.yml | 18 ++++++++++++- .github/workflows/gradle.yml | 25 ++++++++++------- .github/workflows/release.yml | 2 +- buildSrc/build.gradle | 2 +- buildSrc/settings.gradle | 7 +++++ ...micronaut.build.internal.kafka-base.gradle | 2 +- ...cronaut.build.internal.kafka-module.gradle | 6 ++--- config/checkstyle/checkstyle.xml | 6 +++-- gradle/libs.versions.toml | 27 ++++++++++++++++--- kafka-streams/build.gradle | 4 +-- kafka/build.gradle | 12 ++++----- settings.gradle | 16 +++++------ tests/tasks-sasl-plaintext/build.gradle | 4 +-- 13 files changed, 92 insertions(+), 39 deletions(-) create mode 100644 buildSrc/settings.gradle diff --git a/.github/workflows/graalvm.yml b/.github/workflows/graalvm.yml index fd1173211..c0f68cc0f 100644 --- a/.github/workflows/graalvm.yml +++ b/.github/workflows/graalvm.yml @@ -42,7 +42,11 @@ jobs: version: ${{ matrix.graalvm }} java-version: ${{ matrix.java }} components: 'native-image' + github-token: ${{ secrets.GITHUB_TOKEN }} + - name: Setup Gradle + uses: gradle/gradle-build-action@v2.3.3 - name: Build with Gradle + id: gradle run: | if ./gradlew tasks --no-daemon --all | grep -w "testNativeImage" then @@ -56,9 +60,21 @@ jobs: GRADLE_ENTERPRISE_CACHE_USERNAME: ${{ secrets.GRADLE_ENTERPRISE_CACHE_USERNAME }} GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }} PREDICTIVE_TEST_SELECTION: "${{ github.event_name == 'pull_request' && 'true' || 'false' }}" + - name: Add build scan URL as PR comment + uses: actions/github-script@v5 + if: github.event_name == 'pull_request' && failure() + with: + github-token: ${{secrets.GITHUB_TOKEN}} + script: | + github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: '❌ ${{ github.workflow }} ${{ matrix.java }} ${{ matrix.graalvm }} failed: ${{ steps.gradle.outputs.build-scan-url }}' + }) - name: Publish Test Report if: always() - uses: mikepenz/action-junit-report@v3.6.1 + uses: mikepenz/action-junit-report@v3.7.0 with: check_name: GraalVM CE CI / Test Report (Java ${{ matrix.java }}) report_paths: '**/build/test-results/test/TEST-*.xml' diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 3e8538eae..26ffebb06 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -29,17 +29,13 @@ jobs: sudo apt-get clean df -h - uses: actions/checkout@v3 - - uses: actions/cache@v3 - with: - path: ~/.gradle/caches - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} - restore-keys: | - ${{ runner.os }}-gradle- - name: Set up JDK uses: actions/setup-java@v3 with: distribution: 'temurin' java-version: ${{ matrix.java }} + - name: Setup Gradle + uses: gradle/gradle-build-action@v2.3.3 - name: Optional setup step env: GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} @@ -48,9 +44,8 @@ jobs: run: | [ -f ./setup.sh ] && ./setup.sh || true - name: Build with Gradle + id: gradle run: | - # Awful hack for kapt and JDK 16. See https://youtrack.jetbrains.com/issue/KT-45545 - if [ ${{ matrix.java }} == 16 ]; then export GRADLE_OPTS="-Dorg.gradle.jvmargs=--illegal-access=permit"; fi ./gradlew check --no-daemon --parallel --continue env: TESTCONTAINERS_RYUK_DISABLED: true @@ -58,9 +53,21 @@ jobs: GRADLE_ENTERPRISE_CACHE_USERNAME: ${{ secrets.GRADLE_ENTERPRISE_CACHE_USERNAME }} GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }} PREDICTIVE_TEST_SELECTION: "${{ github.event_name == 'pull_request' && 'true' || 'false' }}" + - name: Add build scan URL as PR comment + uses: actions/github-script@v5 + if: github.event_name == 'pull_request' && failure() + with: + github-token: ${{secrets.GITHUB_TOKEN}} + script: | + github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: '❌ ${{ github.workflow }} failed: ${{ steps.gradle.outputs.build-scan-url }}' + }) - name: Publish Test Report if: always() - uses: mikepenz/action-junit-report@v3.6.1 + uses: mikepenz/action-junit-report@v3.7.0 with: check_name: Java CI / Test Report (${{ matrix.java }}) report_paths: '**/build/test-results/test/TEST-*.xml' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b74ba081d..70ddd4552 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -147,7 +147,7 @@ jobs: actions: read # To read the workflow path. id-token: write # To sign the provenance. contents: write # To add assets to a release. - uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v1.3.0 + uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v1.4.0 with: base64-subjects: "${{ needs.provenance-subject.outputs.artifacts-sha256 }}" upload-assets: true # Upload to a new release. diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 029527863..67eb5354b 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -8,5 +8,5 @@ repositories { } dependencies { - implementation 'io.micronaut.gradle:micronaut-gradle-plugin:3.6.5' + implementation libs.micronaut.gradle.plugin } diff --git a/buildSrc/settings.gradle b/buildSrc/settings.gradle new file mode 100644 index 000000000..7018d7b43 --- /dev/null +++ b/buildSrc/settings.gradle @@ -0,0 +1,7 @@ +dependencyResolutionManagement { + versionCatalogs { + libs { + from(files("../gradle/libs.versions.toml")) + } + } +} \ No newline at end of file diff --git a/buildSrc/src/main/groovy/io.micronaut.build.internal.kafka-base.gradle b/buildSrc/src/main/groovy/io.micronaut.build.internal.kafka-base.gradle index 84da2932c..900993883 100644 --- a/buildSrc/src/main/groovy/io.micronaut.build.internal.kafka-base.gradle +++ b/buildSrc/src/main/groovy/io.micronaut.build.internal.kafka-base.gradle @@ -6,6 +6,6 @@ repositories { configurations.all { resolutionStrategy.dependencySubstitution { substitute(module("org.codehaus.groovy:groovy")) - .using(module("org.apache.groovy:groovy:4.0.6")) + .using(module("org.apache.groovy:groovy:${libs.versions.groovy}")) } } diff --git a/buildSrc/src/main/groovy/io.micronaut.build.internal.kafka-module.gradle b/buildSrc/src/main/groovy/io.micronaut.build.internal.kafka-module.gradle index 5da867622..c97132de4 100644 --- a/buildSrc/src/main/groovy/io.micronaut.build.internal.kafka-module.gradle +++ b/buildSrc/src/main/groovy/io.micronaut.build.internal.kafka-module.gradle @@ -13,12 +13,12 @@ dependencies { testAnnotationProcessor mn.micronaut.inject.java - testImplementation mn.micronaut.micrometer.core + testImplementation mnMicrometer.micronaut.micrometer.core testImplementation mn.micronaut.management testImplementation libs.testcontainers.kafka - testRuntimeOnly mn.micronaut.cache.core - testRuntimeOnly mn.micronaut.reactor + testRuntimeOnly mnCache.micronaut.cache.core + testRuntimeOnly mnReactor.micronaut.reactor testRuntimeOnly mn.micronaut.http.server.netty testRuntimeOnly mn.micronaut.management testRuntimeOnly mn.snakeyaml diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml index e8f5b18f2..c1b8e1280 100644 --- a/config/checkstyle/checkstyle.xml +++ b/config/checkstyle/checkstyle.xml @@ -96,11 +96,13 @@ - + - + + + diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b22219945..a133fdbf9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,7 @@ [versions] micronaut = "4.0.0-SNAPSHOT" micronaut-docs = "2.0.0" +micronaut-gradle-plugin = "3.6.6" # Required to keep catalog compatibility with 3.4.x. Can be removed for 4.0.0 managed-kafka-compat = "3.3.1" @@ -11,8 +12,19 @@ groovy = "4.0.6" opentracing-kafka-client = '0.1.15' opentracing-mock = '0.33.0' +testcontainers = "1.17.6" + zipkin-brave-kafka-clients = '5.14.1' +micronaut-cache = "4.0.0-SNAPSHOT" +micronaut-micrometer = "5.0.0-SNAPSHOT" +micronaut-reactor = "3.0.0-SNAPSHOT" +micronaut-rxjava2 = "2.0.0-SNAPSHOT" +micronaut-serde = "2.0.0-SNAPSHOT" +micronaut-tracing = "5.0.0-SNAPSHOT" +micronaut-test = "4.0.0-SNAPSHOT" + + [libraries] # Duplicated to keep catalog compatibility with 3.4.x. Can be removed for 4.0.0 managed-kafka = { module = 'org.apache.kafka:kafka-clients', version.ref = 'managed-kafka-compat' } @@ -25,6 +37,15 @@ opentracing-mock = { module = 'io.opentracing:opentracing-mock', version.ref = ' zipkin-brave-kafka-clients = { module = 'io.zipkin.brave:brave-instrumentation-kafka-clients', version.ref = 'zipkin-brave-kafka-clients' } -testcontainers-bom = { module = "org.testcontainers:testcontainers-bom" } -testcontainers-kafka = { module = 'org.testcontainers:kafka' } -testcontainers-spock = { module = 'org.testcontainers:spock' } +testcontainers-kafka = { module = 'org.testcontainers:kafka', version.ref = 'testcontainers' } +testcontainers-spock = { module = 'org.testcontainers:spock', version.ref = 'testcontainers' } + +micronaut-cache = { module = "io.micronaut.cache:micronaut-cache-bom", version.ref = "micronaut-cache" } +micronaut-micrometer = { module = "io.micronaut.micrometer:micronaut-micrometer-bom", version.ref = "micronaut-micrometer" } +micronaut-reactor = { module = "io.micronaut.reactor:micronaut-reactor-bom", version.ref = "micronaut-reactor" } +micronaut-rxjava2 = { module = "io.micronaut.rxjava2:micronaut-rxjava2-bom", version.ref = "micronaut-rxjava2" } +micronaut-serde = { module = "io.micronaut.serde:micronaut-serde-bom", version.ref = "micronaut-serde" } +micronaut-tracing = { module = "io.micronaut.tracing:micronaut-tracing-bom", version.ref = "micronaut-tracing" } + +micronaut-gradle-plugin = { module = "io.micronaut.gradle:micronaut-gradle-plugin", version.ref = "micronaut-gradle-plugin" } + diff --git a/kafka-streams/build.gradle b/kafka-streams/build.gradle index 08e07fe52..390a9758e 100644 --- a/kafka-streams/build.gradle +++ b/kafka-streams/build.gradle @@ -5,7 +5,7 @@ plugins { dependencies { api projects.kafka api libs.managed.kafka.streams - compileOnly mn.micronaut.micrometer.core + compileOnly mnMicrometer.micronaut.micrometer.core testImplementation mn.micronaut.http.client - testImplementation mn.micronaut.serde.jackson + testImplementation mnSerde.micronaut.serde.jackson } diff --git a/kafka/build.gradle b/kafka/build.gradle index a8719242a..7766ec6c0 100644 --- a/kafka/build.gradle +++ b/kafka/build.gradle @@ -13,15 +13,15 @@ dependencies { api libs.managed.kafka.clients - compileOnly mn.micronaut.micrometer.core + compileOnly mnMicrometer.micronaut.micrometer.core compileOnly libs.zipkin.brave.kafka.clients compileOnly mn.micronaut.graal - testImplementation mn.micronaut.serde.jackson - testImplementation mn.micronaut.rxjava2 + testImplementation mnSerde.micronaut.serde.jackson + testImplementation mnRxjava2.micronaut.rxjava2 testImplementation mn.micronaut.http.client - testImplementation mn.micronaut.rxjava2 + testImplementation mnRxjava2.micronaut.rxjava2 - testRuntimeOnly mn.micronaut.micrometer.registry.statsd - testRuntimeOnly mn.micronaut.tracing.core + testRuntimeOnly mnMicrometer.micronaut.micrometer.registry.statsd + testRuntimeOnly mnTracing.micronaut.tracing.core } diff --git a/settings.gradle b/settings.gradle index b5a49b782..cbbff6458 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,22 +6,22 @@ pluginManagement { } plugins { - id("io.micronaut.build.shared.settings") version "6.1.0" + id("io.micronaut.build.shared.settings") version "6.1.1" } enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") -dependencyResolutionManagement { - repositories { - mavenCentral() - maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots/" } - } -} - rootProject.name = 'kafka-parent' micronautBuild { + addSnapshotRepository() importMicronautCatalog() + importMicronautCatalog("micronaut-cache") + importMicronautCatalog("micronaut-micrometer") + importMicronautCatalog("micronaut-reactor") + importMicronautCatalog("micronaut-rxjava2") + importMicronautCatalog("micronaut-serde") + importMicronautCatalog("micronaut-tracing") } include 'kafka-bom' diff --git a/tests/tasks-sasl-plaintext/build.gradle b/tests/tasks-sasl-plaintext/build.gradle index c3392e612..c33945059 100644 --- a/tests/tasks-sasl-plaintext/build.gradle +++ b/tests/tasks-sasl-plaintext/build.gradle @@ -16,12 +16,12 @@ micronaut { dependencies { implementation projects.kafka - implementation mn.micronaut.serde.jackson + implementation mnSerde.micronaut.serde.jackson implementation mn.snakeyaml testImplementation mn.micronaut.http.client testImplementation libs.testcontainers.kafka testImplementation libs.testcontainers.spock - testImplementation mn.micronaut.test.spock + testImplementation mnTest.micronaut.test.spock } graalvmNative {