diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 00000000000..32b4586b61c --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,119 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: "Coverage" + +on: + push: + branches: + - '[0-9]+.[0-9]+.x' + - '8.0.x-hibernate7.*' + pull_request: + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + +jobs: + coverage-core: + name: "Coverage - grails-core (${{ matrix.os }})" + if: ${{ !contains(github.event.head_commit.message, '[skip tests]') }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-24.04] + runs-on: ${{ matrix.os }} + steps: + - name: "📥 Checkout repository" + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: "☕️ Setup JDK" + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 + with: + distribution: liberica + java-version: 21 + - name: "🐘 Setup Gradle" + uses: gradle/actions/setup-gradle@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6.1.0 + with: + cache-provider: basic # 'basic' uses the MIT-licensed, open-source cache provider; the default 'enhanced' provider (v6+) is proprietary (Gradle commercial Terms of Use) + develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }} + - name: "🌡️ Run tests with coverage" + run: > + ./gradlew jacocoAggregateReport + --continue + --stacktrace + -PskipCodeStyle + - name: "📤 Upload coverage artifact" + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: coverage-core-${{ matrix.os }} + path: build/reports/jacoco/aggregate/jacocoAggregateReport.xml + if-no-files-found: warn + + coverage-gradle: + name: "Coverage - grails-gradle (${{ matrix.os }})" + if: ${{ !contains(github.event.head_commit.message, '[skip tests]') }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-24.04] + runs-on: ${{ matrix.os }} + steps: + - name: "📥 Checkout repository" + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: "☕️ Setup JDK" + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 + with: + distribution: liberica + java-version: 21 + - name: "🐘 Setup Gradle" + uses: gradle/actions/setup-gradle@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6.1.0 + with: + cache-provider: basic # 'basic' uses the MIT-licensed, open-source cache provider; the default 'enhanced' provider (v6+) is proprietary (Gradle commercial Terms of Use) + develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }} + - name: "🌡️ Run tests with coverage" + working-directory: grails-gradle + run: > + ./gradlew jacocoAggregateReport + --continue + --stacktrace + -PskipCodeStyle + - name: "📤 Upload coverage artifact" + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: coverage-gradle-${{ matrix.os }} + path: grails-gradle/build/reports/jacoco/aggregate/jacocoAggregateReport.xml + if-no-files-found: warn + + upload-coverage: + name: "Upload Coverage to Codecov" + needs: [coverage-core, coverage-gradle] + # Run even if some matrix legs fail so partial coverage is still uploaded + if: always() + runs-on: ubuntu-24.04 + steps: + - name: "📥 Checkout repository" + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: "📥 Download all coverage artifacts" + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + with: + path: coverage-reports + - name: "📊 Upload coverage to Codecov" + continue-on-error: true + uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0 + with: + token: ${{ secrets.CODECOV_TOKEN }} + directory: coverage-reports + verbose: true diff --git a/build-logic/plugins/build.gradle b/build-logic/plugins/build.gradle index b196ee24316..b4917a4ae61 100644 --- a/build-logic/plugins/build.gradle +++ b/build-logic/plugins/build.gradle @@ -75,6 +75,10 @@ gradlePlugin { id = 'org.apache.grails.gradle.grails-code-analysis' implementationClass = 'org.apache.grails.buildsrc.GrailsCodeAnalysisPlugin' } + register('grailsJacoco') { + id = 'org.apache.grails.gradle.grails-jacoco' + implementationClass = 'org.apache.grails.buildsrc.GrailsJacocoPlugin' + } register('grailsViolationAggregation') { id = 'org.apache.grails.gradle.grails-violation-aggregation' implementationClass = 'org.apache.grails.buildsrc.GrailsViolationAggregationPlugin' diff --git a/build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/GrailsJacocoPlugin.groovy b/build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/GrailsJacocoPlugin.groovy new file mode 100644 index 00000000000..8c337156a62 --- /dev/null +++ b/build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/GrailsJacocoPlugin.groovy @@ -0,0 +1,130 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.grails.buildsrc + +import groovy.transform.CompileStatic + +import org.gradle.api.Action +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.api.plugins.JavaPlugin +import org.gradle.api.tasks.SourceSet +import org.gradle.api.tasks.SourceSetContainer +import org.gradle.api.tasks.testing.Test +import org.gradle.testing.jacoco.plugins.JacocoPlugin +import org.gradle.testing.jacoco.plugins.JacocoPluginExtension +import org.gradle.testing.jacoco.tasks.JacocoReport +import org.gradle.testing.jacoco.tasks.JacocoReportsContainer + +/** + * Convention plugin for JaCoCo code coverage. Apply to each subproject that compiles code. + * + * In addition to configuring per-subproject coverage, this plugin lazily registers a + * jacocoAggregateReport task on the root project the first time it is applied, then wires + * each subproject's exec data into that task. The aggregate produces a single XML report + * at build/reports/jacoco/aggregate/jacocoAggregateReport.xml suitable for Codecov upload. + */ +@CompileStatic +class GrailsJacocoPlugin implements Plugin { + + static final String AGGREGATE_TASK_NAME = 'jacocoAggregateReport' + + @Override + void apply(Project project) { + project.logger.info('Configuring JaCoCo for project: {}', project.name) + project.pluginManager.apply(JacocoPlugin) + + project.extensions.configure(JacocoPluginExtension) { + it.toolVersion = project.findProperty('jacocoVersion') + } + + project.tasks.withType(Test).configureEach { + it.finalizedBy('jacocoTestReport') + } + + project.tasks.withType(JacocoReport).configureEach { + it.dependsOn(project.tasks.withType(Test)) + it.reports({ JacocoReportsContainer reports -> + reports.xml.required.set(true) + reports.html.required.set(true) + reports.csv.required.set(true) + } as Action) + } + + contributeToRootAggregateReport(project) + } + + private static void contributeToRootAggregateReport(Project project) { + def rootProject = project.rootProject + + // Ensure JacocoPlugin is on the root so its JacocoReport task has tooling available. + // pluginManager.apply is idempotent — safe to call from every subproject. + rootProject.pluginManager.apply(JacocoPlugin) + + // Register the aggregate task once on the first apply; subsequent subprojects find it by name. + def aggregateTask + if (rootProject.tasks.names.contains(AGGREGATE_TASK_NAME)) { + aggregateTask = rootProject.tasks.named(AGGREGATE_TASK_NAME, JacocoReport) + } else { + aggregateTask = rootProject.tasks.register(AGGREGATE_TASK_NAME, JacocoReport) { + it.group = 'verification' + it.description = 'Aggregates JaCoCo coverage from all subprojects into a single XML report for Codecov.' + it.reports({ JacocoReportsContainer reports -> + reports.xml.required.set(true) + reports.xml.outputLocation.set(rootProject.layout.buildDirectory.file( + 'reports/jacoco/aggregate/jacocoAggregateReport.xml' + )) + reports.html.required.set(false) + reports.csv.required.set(false) + + } as Action) + it.onlyIf { JacocoReport t -> + !t.executionData.files.isEmpty() + } + } + } + + // Wire this subproject's test exec data into the aggregate. + aggregateTask.configure { JacocoReport task -> + task.dependsOn(project.tasks.withType(Test)) + task.executionData.from( + project.fileTree(project.file('build/jacoco')) { + include('*.exec') + } + ) + } + + // Add source and class directories once the Java plugin is confirmed present. + // Hibernate 7 variant subprojects compile identical class names to their Hibernate 5 + // counterparts; including both causes JaCoCo to throw "Can't add different class with + // same name". Exec data from H7 test runs is still included above so their coverage + // is attributed to the H5 class definitions. + if (!project.path.contains('hibernate7')) { + project.plugins.withType(JavaPlugin).configureEach { + def mainSourceSet = project.extensions + .getByType(SourceSetContainer) + .named(SourceSet.MAIN_SOURCE_SET_NAME) + aggregateTask.configure { + it.sourceDirectories.from(mainSourceSet.map { it.allSource.srcDirs }) + it.classDirectories.from(mainSourceSet.map { it.output.classesDirs }) + } + } + } + } +} diff --git a/build-logic/plugins/src/test/groovy/org/apache/grails/buildsrc/GrailsJacocoPluginSpec.groovy b/build-logic/plugins/src/test/groovy/org/apache/grails/buildsrc/GrailsJacocoPluginSpec.groovy new file mode 100644 index 00000000000..5ee04174959 --- /dev/null +++ b/build-logic/plugins/src/test/groovy/org/apache/grails/buildsrc/GrailsJacocoPluginSpec.groovy @@ -0,0 +1,178 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.grails.buildsrc + +import org.gradle.testkit.runner.GradleRunner +import org.gradle.testkit.runner.TaskOutcome +import spock.lang.Specification +import spock.lang.TempDir + +import java.nio.file.Path + +class GrailsJacocoPluginSpec extends Specification { + + @TempDir + Path testProjectDir + + def setup() { + testProjectDir.resolve('settings.gradle').toFile().text = '' + testProjectDir.resolve('build.gradle').toFile().text = """ + plugins { + id 'groovy' + id 'org.apache.grails.gradle.grails-jacoco' + } + repositories { + mavenCentral() + } + """ + def src = testProjectDir.resolve('src/main/groovy/com/example/Foo.groovy').toFile() + src.parentFile.mkdirs() + src.text = 'package com.example\nclass Foo {}' + } + + def "jacoco plugin applies JaCoCo and registers jacocoTestReport task"() { + when: "listing verification tasks" + def result = GradleRunner.create() + .withProjectDir(testProjectDir.toFile()) + .withArguments('tasks', '--group=verification') + .withPluginClasspath() + .build() + + then: "jacocoTestReport is present" + result.output.contains('jacocoTestReport') + } + + def "jacocoTestReport generates xml html and csv reports"() { + when: "listing all tasks" + def result = GradleRunner.create() + .withProjectDir(testProjectDir.toFile()) + .withArguments('tasks', '--all') + .withPluginClasspath() + .build() + + then: "aggregateJacocoCoverage is not registered (that task belongs to grails-violation-aggregation)" + !result.output.contains('aggregateJacocoCoverage') + } + + def "jacocoAggregateReport is registered on the root project in a multi-project build"() { + given: "a multi-project build where a subproject applies grails-jacoco" + testProjectDir.resolve('settings.gradle').toFile().text = "include 'app-module'" + testProjectDir.resolve('build.gradle').toFile().text = '' + def moduleDir = testProjectDir.resolve('app-module') + moduleDir.toFile().mkdirs() + moduleDir.resolve('build.gradle').toFile().text = """ + plugins { + id 'groovy' + id 'org.apache.grails.gradle.grails-jacoco' + } + repositories { mavenCentral() } + """ + + when: "listing verification tasks on the root" + def result = GradleRunner.create() + .withProjectDir(testProjectDir.toFile()) + .withArguments('tasks', '--group=verification') + .withPluginClasspath() + .build() + + then: "jacocoAggregateReport appears on the root" + result.output.contains('jacocoAggregateReport') + } + + def "jacocoAggregateReport includes the subproject test task as a dependency"() { + given: "a multi-project build" + testProjectDir.resolve('settings.gradle').toFile().text = "include 'app-module'" + testProjectDir.resolve('build.gradle').toFile().text = '' + def moduleDir = testProjectDir.resolve('app-module') + moduleDir.toFile().mkdirs() + moduleDir.resolve('build.gradle').toFile().text = """ + plugins { + id 'groovy' + id 'org.apache.grails.gradle.grails-jacoco' + } + repositories { mavenCentral() } + """ + + when: "doing a dry run" + def result = GradleRunner.create() + .withProjectDir(testProjectDir.toFile()) + .withArguments('jacocoAggregateReport', '--dry-run') + .withPluginClasspath() + .build() + + then: "the subproject test task is in the execution plan" + result.output.contains(':app-module:test') + } + + def "jacocoAggregateReport is skipped when no exec files exist"() { + given: "a multi-project build with tests excluded so no exec files are produced" + testProjectDir.resolve('settings.gradle').toFile().text = "include 'app-module'" + testProjectDir.resolve('build.gradle').toFile().text = '' + def moduleDir = testProjectDir.resolve('app-module') + moduleDir.toFile().mkdirs() + moduleDir.resolve('build.gradle').toFile().text = """ + plugins { + id 'groovy' + id 'org.apache.grails.gradle.grails-jacoco' + } + repositories { mavenCentral() } + """ + + when: "running jacocoAggregateReport with tests excluded" + def result = GradleRunner.create() + .withProjectDir(testProjectDir.toFile()) + .withArguments('jacocoAggregateReport', '-x', 'test', '--stacktrace') + .withPluginClasspath() + .build() + + then: "the task is skipped because executionData is empty" + result.task(':jacocoAggregateReport').outcome == TaskOutcome.SKIPPED + } + + def "each additional subproject with grails-jacoco wires itself into the same aggregate task"() { + given: "two subprojects both applying grails-jacoco" + testProjectDir.resolve('settings.gradle').toFile().text = "include 'module-a', 'module-b'" + testProjectDir.resolve('build.gradle').toFile().text = '' + ['module-a', 'module-b'].each { name -> + def dir = testProjectDir.resolve(name) + dir.toFile().mkdirs() + dir.resolve('build.gradle').toFile().text = """ + plugins { + id 'groovy' + id 'org.apache.grails.gradle.grails-jacoco' + } + repositories { mavenCentral() } + """ + } + + when: "doing a dry run" + def result = GradleRunner.create() + .withProjectDir(testProjectDir.toFile()) + .withArguments('jacocoAggregateReport', '--dry-run') + .withPluginClasspath() + .build() + + then: "both subproject test tasks appear as dependencies" + result.output.contains(':module-a:test') + result.output.contains(':module-b:test') + + and: "only one aggregate task is registered on the root" + result.output.count('jacocoAggregateReport') == 1 + } +} diff --git a/gradle.properties b/gradle.properties index 77c27d353b7..6d15317671a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -70,6 +70,7 @@ jbossTransactionApiVersion=2.0.0.Final # build dependencies for code quality checks checkstyleVersion=11.0.0 codenarcVersion=3.6.0-groovy-4.0 +jacocoVersion=0.8.14 pmdVersion=7.25.0 spotbugsPluginVersion=6.4.8 diff --git a/grails-async/core/build.gradle b/grails-async/core/build.gradle index cee4816f2ea..66603feeb0c 100644 --- a/grails-async/core/build.gradle +++ b/grails-async/core/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-async/gpars/build.gradle b/grails-async/gpars/build.gradle index 8c8d001b266..edbec0d9a19 100644 --- a/grails-async/gpars/build.gradle +++ b/grails-async/gpars/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-async/plugin/build.gradle b/grails-async/plugin/build.gradle index c6d1f34085a..261025dfad1 100644 --- a/grails-async/plugin/build.gradle +++ b/grails-async/plugin/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-async/rxjava/build.gradle b/grails-async/rxjava/build.gradle index 0bc5e0a8c71..4546aec2b76 100644 --- a/grails-async/rxjava/build.gradle +++ b/grails-async/rxjava/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-async/rxjava2/build.gradle b/grails-async/rxjava2/build.gradle index 1e3d564320a..2d676a47359 100644 --- a/grails-async/rxjava2/build.gradle +++ b/grails-async/rxjava2/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-async/rxjava3/build.gradle b/grails-async/rxjava3/build.gradle index d5c36cb6f4b..d1fe3983c54 100644 --- a/grails-async/rxjava3/build.gradle +++ b/grails-async/rxjava3/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-bootstrap/build.gradle b/grails-bootstrap/build.gradle index 8326c9da519..9b0560d6dee 100644 --- a/grails-bootstrap/build.gradle +++ b/grails-bootstrap/build.gradle @@ -29,6 +29,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-cache/build.gradle b/grails-cache/build.gradle index 9d607d16ca0..b219bdcee11 100644 --- a/grails-cache/build.gradle +++ b/grails-cache/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-codecs-core/build.gradle b/grails-codecs-core/build.gradle index a6e2562f863..41bba9e7d8c 100644 --- a/grails-codecs-core/build.gradle +++ b/grails-codecs-core/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-codecs/build.gradle b/grails-codecs/build.gradle index 0e612cbb19b..251148f9020 100644 --- a/grails-codecs/build.gradle +++ b/grails-codecs/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-common/build.gradle b/grails-common/build.gradle index 8957177a9ab..edd3773f5ce 100644 --- a/grails-common/build.gradle +++ b/grails-common/build.gradle @@ -25,6 +25,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-console/build.gradle b/grails-console/build.gradle index d3ec60a3f1d..7a82b4fc501 100644 --- a/grails-console/build.gradle +++ b/grails-console/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-controllers/build.gradle b/grails-controllers/build.gradle index dc68dacf8fe..1317a3d1a3c 100644 --- a/grails-controllers/build.gradle +++ b/grails-controllers/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-converters/build.gradle b/grails-converters/build.gradle index 0bb79ca3763..506879e0db4 100644 --- a/grails-converters/build.gradle +++ b/grails-converters/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-core/build.gradle b/grails-core/build.gradle index 7e486bfaaef..84794b723f4 100644 --- a/grails-core/build.gradle +++ b/grails-core/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-data-hibernate5/boot-plugin/build.gradle b/grails-data-hibernate5/boot-plugin/build.gradle index 2c6c0aa6273..405d832d9c5 100644 --- a/grails-data-hibernate5/boot-plugin/build.gradle +++ b/grails-data-hibernate5/boot-plugin/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-data-hibernate5/core/build.gradle b/grails-data-hibernate5/core/build.gradle index 1f77e3657d3..c31c6fb7534 100644 --- a/grails-data-hibernate5/core/build.gradle +++ b/grails-data-hibernate5/core/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-data-hibernate5/dbmigration/build.gradle b/grails-data-hibernate5/dbmigration/build.gradle index 3a74dd04290..c6e76e94ada 100644 --- a/grails-data-hibernate5/dbmigration/build.gradle +++ b/grails-data-hibernate5/dbmigration/build.gradle @@ -25,6 +25,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-data-hibernate5/grails-plugin/build.gradle b/grails-data-hibernate5/grails-plugin/build.gradle index 22fd52fe58e..67c8696f22f 100644 --- a/grails-data-hibernate5/grails-plugin/build.gradle +++ b/grails-data-hibernate5/grails-plugin/build.gradle @@ -25,6 +25,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-data-hibernate5/spring-orm/build.gradle b/grails-data-hibernate5/spring-orm/build.gradle index 3713dfb9ccf..04bfe9b6ed5 100644 --- a/grails-data-hibernate5/spring-orm/build.gradle +++ b/grails-data-hibernate5/spring-orm/build.gradle @@ -28,6 +28,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-data-mongodb/boot-plugin/build.gradle b/grails-data-mongodb/boot-plugin/build.gradle index 572e90fa09e..fe528e8c01b 100644 --- a/grails-data-mongodb/boot-plugin/build.gradle +++ b/grails-data-mongodb/boot-plugin/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-data-mongodb/bson/build.gradle b/grails-data-mongodb/bson/build.gradle index 1ac2663ee71..f25d1f44d40 100644 --- a/grails-data-mongodb/bson/build.gradle +++ b/grails-data-mongodb/bson/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-data-mongodb/core/build.gradle b/grails-data-mongodb/core/build.gradle index f080478090f..a4cd052a905 100644 --- a/grails-data-mongodb/core/build.gradle +++ b/grails-data-mongodb/core/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-data-mongodb/ext/build.gradle b/grails-data-mongodb/ext/build.gradle index f8271315be4..f945ce8b188 100644 --- a/grails-data-mongodb/ext/build.gradle +++ b/grails-data-mongodb/ext/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-data-mongodb/grails-plugin/build.gradle b/grails-data-mongodb/grails-plugin/build.gradle index 1ace1bc70db..b1f6f95d02c 100644 --- a/grails-data-mongodb/grails-plugin/build.gradle +++ b/grails-data-mongodb/grails-plugin/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-data-mongodb/gson-templates/build.gradle b/grails-data-mongodb/gson-templates/build.gradle index 445f6f36760..534c70d1401 100644 --- a/grails-data-mongodb/gson-templates/build.gradle +++ b/grails-data-mongodb/gson-templates/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-data-simple/build.gradle b/grails-data-simple/build.gradle index 22567f865ca..a427d5ab6e3 100644 --- a/grails-data-simple/build.gradle +++ b/grails-data-simple/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-databinding-core/build.gradle b/grails-databinding-core/build.gradle index cf2bf90b51d..d5bd01e5cee 100644 --- a/grails-databinding-core/build.gradle +++ b/grails-databinding-core/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-databinding/build.gradle b/grails-databinding/build.gradle index 86b4fe0f048..e3f29ae7567 100644 --- a/grails-databinding/build.gradle +++ b/grails-databinding/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-datamapping-async/build.gradle b/grails-datamapping-async/build.gradle index a2731948935..36692276354 100644 --- a/grails-datamapping-async/build.gradle +++ b/grails-datamapping-async/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-datamapping-core/build.gradle b/grails-datamapping-core/build.gradle index 9eb9a7412ce..6027dc56b98 100644 --- a/grails-datamapping-core/build.gradle +++ b/grails-datamapping-core/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-datamapping-rx/build.gradle b/grails-datamapping-rx/build.gradle index 66157ce4594..f061a25f9f0 100644 --- a/grails-datamapping-rx/build.gradle +++ b/grails-datamapping-rx/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-datamapping-support/build.gradle b/grails-datamapping-support/build.gradle index 95656e2b87d..00da75657d9 100644 --- a/grails-datamapping-support/build.gradle +++ b/grails-datamapping-support/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-datamapping-tck/build.gradle b/grails-datamapping-tck/build.gradle index 15e7de95097..30609ec660c 100644 --- a/grails-datamapping-tck/build.gradle +++ b/grails-datamapping-tck/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-datamapping-validation/build.gradle b/grails-datamapping-validation/build.gradle index 0748bcffd95..afe7104df1b 100644 --- a/grails-datamapping-validation/build.gradle +++ b/grails-datamapping-validation/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-datasource/build.gradle b/grails-datasource/build.gradle index a6ed818743b..26aa4673f57 100644 --- a/grails-datasource/build.gradle +++ b/grails-datasource/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-datastore-async/build.gradle b/grails-datastore-async/build.gradle index 68f9ed6685b..9cf93f6fd86 100644 --- a/grails-datastore-async/build.gradle +++ b/grails-datastore-async/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-datastore-core/build.gradle b/grails-datastore-core/build.gradle index 8750516d37a..8b57913bd36 100644 --- a/grails-datastore-core/build.gradle +++ b/grails-datastore-core/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-datastore-web/build.gradle b/grails-datastore-web/build.gradle index 138497f193b..35776990ef8 100644 --- a/grails-datastore-web/build.gradle +++ b/grails-datastore-web/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-domain-class/build.gradle b/grails-domain-class/build.gradle index a34f2607f95..35d07613fde 100644 --- a/grails-domain-class/build.gradle +++ b/grails-domain-class/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-encoder/build.gradle b/grails-encoder/build.gradle index a1cac6930e8..a58f6fe916f 100644 --- a/grails-encoder/build.gradle +++ b/grails-encoder/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-events/core/build.gradle b/grails-events/core/build.gradle index 0c68efd5606..170917ecb54 100644 --- a/grails-events/core/build.gradle +++ b/grails-events/core/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-events/gpars/build.gradle b/grails-events/gpars/build.gradle index ad365eceee4..ed258ff6e11 100644 --- a/grails-events/gpars/build.gradle +++ b/grails-events/gpars/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-events/plugin/build.gradle b/grails-events/plugin/build.gradle index d2cc1e24455..319fca9aed7 100644 --- a/grails-events/plugin/build.gradle +++ b/grails-events/plugin/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-events/rxjava/build.gradle b/grails-events/rxjava/build.gradle index 312477fefae..4c575e1b110 100644 --- a/grails-events/rxjava/build.gradle +++ b/grails-events/rxjava/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-events/rxjava2/build.gradle b/grails-events/rxjava2/build.gradle index 5a107dd9241..95473ab284e 100644 --- a/grails-events/rxjava2/build.gradle +++ b/grails-events/rxjava2/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-events/rxjava3/build.gradle b/grails-events/rxjava3/build.gradle index efca93c18dd..7974ecf4ea8 100644 --- a/grails-events/rxjava3/build.gradle +++ b/grails-events/rxjava3/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-events/spring/build.gradle b/grails-events/spring/build.gradle index c568f926238..1c0ec93e21c 100644 --- a/grails-events/spring/build.gradle +++ b/grails-events/spring/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-events/transforms/build.gradle b/grails-events/transforms/build.gradle index 778980c0951..557d75eb73b 100644 --- a/grails-events/transforms/build.gradle +++ b/grails-events/transforms/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-fields/build.gradle b/grails-fields/build.gradle index 1ed72931b9b..7f93d03123b 100644 --- a/grails-fields/build.gradle +++ b/grails-fields/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-geb/build.gradle b/grails-geb/build.gradle index 160bdf8e955..08205371c8d 100644 --- a/grails-geb/build.gradle +++ b/grails-geb/build.gradle @@ -25,6 +25,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-gradle/common/build.gradle b/grails-gradle/common/build.gradle index 7d05cb8211f..80bdc409b20 100644 --- a/grails-gradle/common/build.gradle +++ b/grails-gradle/common/build.gradle @@ -24,6 +24,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-gradle/model/build.gradle b/grails-gradle/model/build.gradle index 23f4e81e021..8d8965a3c9f 100644 --- a/grails-gradle/model/build.gradle +++ b/grails-gradle/model/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-gradle/plugins/build.gradle b/grails-gradle/plugins/build.gradle index 405b5d4462e..41930cb38c3 100644 --- a/grails-gradle/plugins/build.gradle +++ b/grails-gradle/plugins/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-gradle/tasks/build.gradle b/grails-gradle/tasks/build.gradle index a994c5f868c..584d3e7e308 100644 --- a/grails-gradle/tasks/build.gradle +++ b/grails-gradle/tasks/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-gsp/core/build.gradle b/grails-gsp/core/build.gradle index e55a044be70..8197b52dc16 100644 --- a/grails-gsp/core/build.gradle +++ b/grails-gsp/core/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-gsp/grails-layout/build.gradle b/grails-gsp/grails-layout/build.gradle index 32eb8c13c35..5994b859264 100644 --- a/grails-gsp/grails-layout/build.gradle +++ b/grails-gsp/grails-layout/build.gradle @@ -25,6 +25,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-gsp/grails-sitemesh3/build.gradle b/grails-gsp/grails-sitemesh3/build.gradle index 676039b0355..a8331fec5ed 100644 --- a/grails-gsp/grails-sitemesh3/build.gradle +++ b/grails-gsp/grails-sitemesh3/build.gradle @@ -26,6 +26,7 @@ plugins { // TODO: id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-gsp/grails-taglib/build.gradle b/grails-gsp/grails-taglib/build.gradle index 55c91cfe45a..0a3d99e7f91 100644 --- a/grails-gsp/grails-taglib/build.gradle +++ b/grails-gsp/grails-taglib/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-gsp/grails-web-gsp-taglib/build.gradle b/grails-gsp/grails-web-gsp-taglib/build.gradle index 869592160cd..6fe30cb5e49 100644 --- a/grails-gsp/grails-web-gsp-taglib/build.gradle +++ b/grails-gsp/grails-web-gsp-taglib/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-gsp/grails-web-gsp/build.gradle b/grails-gsp/grails-web-gsp/build.gradle index f9df4c2edd1..d08ff77fdad 100644 --- a/grails-gsp/grails-web-gsp/build.gradle +++ b/grails-gsp/grails-web-gsp/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-gsp/grails-web-jsp/build.gradle b/grails-gsp/grails-web-jsp/build.gradle index 77760958190..e7dc6c00dc4 100644 --- a/grails-gsp/grails-web-jsp/build.gradle +++ b/grails-gsp/grails-web-jsp/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-gsp/grails-web-taglib/build.gradle b/grails-gsp/grails-web-taglib/build.gradle index a69196b1140..4cac8d0179c 100644 --- a/grails-gsp/grails-web-taglib/build.gradle +++ b/grails-gsp/grails-web-taglib/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-gsp/plugin/build.gradle b/grails-gsp/plugin/build.gradle index 767a130825b..52c3dc67add 100644 --- a/grails-gsp/plugin/build.gradle +++ b/grails-gsp/plugin/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-i18n/build.gradle b/grails-i18n/build.gradle index ad7785dbfc6..1043553c5e3 100644 --- a/grails-i18n/build.gradle +++ b/grails-i18n/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-interceptors/build.gradle b/grails-interceptors/build.gradle index 7d18d14b91e..2e4c2d62666 100644 --- a/grails-interceptors/build.gradle +++ b/grails-interceptors/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-logging/build.gradle b/grails-logging/build.gradle index 9ba07de8269..4235b960ebf 100644 --- a/grails-logging/build.gradle +++ b/grails-logging/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-mimetypes/build.gradle b/grails-mimetypes/build.gradle index 0391a333643..8c03a771abe 100644 --- a/grails-mimetypes/build.gradle +++ b/grails-mimetypes/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-rest-transforms/build.gradle b/grails-rest-transforms/build.gradle index 3cbfdba682f..5ac282b4eec 100644 --- a/grails-rest-transforms/build.gradle +++ b/grails-rest-transforms/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-scaffolding/build.gradle b/grails-scaffolding/build.gradle index 49020837a18..8611c796cff 100644 --- a/grails-scaffolding/build.gradle +++ b/grails-scaffolding/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-services/build.gradle b/grails-services/build.gradle index eda69a8eafd..f226f3a9f22 100644 --- a/grails-services/build.gradle +++ b/grails-services/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-shell-cli/build.gradle b/grails-shell-cli/build.gradle index 1843aa8825c..95fe2559d28 100644 --- a/grails-shell-cli/build.gradle +++ b/grails-shell-cli/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-spring/build.gradle b/grails-spring/build.gradle index 574091c26e5..66ca48861c6 100644 --- a/grails-spring/build.gradle +++ b/grails-spring/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-test-core/build.gradle b/grails-test-core/build.gradle index 82af7708ce1..bc4d461f881 100644 --- a/grails-test-core/build.gradle +++ b/grails-test-core/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-test-examples/scaffolding/src/integrationTest/groovy/com/example/pages/LoginPage.groovy b/grails-test-examples/scaffolding/src/integrationTest/groovy/com/example/pages/LoginPage.groovy index 8a958f9f598..f7158f36d8a 100644 --- a/grails-test-examples/scaffolding/src/integrationTest/groovy/com/example/pages/LoginPage.groovy +++ b/grails-test-examples/scaffolding/src/integrationTest/groovy/com/example/pages/LoginPage.groovy @@ -36,6 +36,6 @@ class LoginPage extends Page { this.username = username this.password = password loginButton.click() - waitFor { title != pageTitle } + waitFor(30) { title != pageTitle } } } diff --git a/grails-test-examples/scaffolding/src/integrationTest/groovy/com/example/pages/LogoutPage.groovy b/grails-test-examples/scaffolding/src/integrationTest/groovy/com/example/pages/LogoutPage.groovy index dcaaae57cff..e099989d935 100644 --- a/grails-test-examples/scaffolding/src/integrationTest/groovy/com/example/pages/LogoutPage.groovy +++ b/grails-test-examples/scaffolding/src/integrationTest/groovy/com/example/pages/LogoutPage.groovy @@ -32,6 +32,6 @@ class LogoutPage extends Page { void logout() { logoutButton.click() - waitFor { title != pageTitle } + waitFor(30) { title != pageTitle } } } diff --git a/grails-test-suite-base/build.gradle b/grails-test-suite-base/build.gradle index 453cb33570f..878aad304ce 100644 --- a/grails-test-suite-base/build.gradle +++ b/grails-test-suite-base/build.gradle @@ -25,6 +25,7 @@ plugins { id 'org.apache.grails.buildsrc.dependency-validator' id 'org.apache.grails.buildsrc.compile' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-testing-support-core/build.gradle b/grails-testing-support-core/build.gradle index 11d60439dd5..8545419121e 100644 --- a/grails-testing-support-core/build.gradle +++ b/grails-testing-support-core/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-testing-support-datamapping/build.gradle b/grails-testing-support-datamapping/build.gradle index 09f4203521e..0a4ee6e6696 100755 --- a/grails-testing-support-datamapping/build.gradle +++ b/grails-testing-support-datamapping/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-testing-support-dbcleanup-core/build.gradle b/grails-testing-support-dbcleanup-core/build.gradle index 7368f6dee10..a603eb967f3 100644 --- a/grails-testing-support-dbcleanup-core/build.gradle +++ b/grails-testing-support-dbcleanup-core/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } diff --git a/grails-testing-support-dbcleanup-h2/build.gradle b/grails-testing-support-dbcleanup-h2/build.gradle index c12e761a303..037c3be8519 100644 --- a/grails-testing-support-dbcleanup-h2/build.gradle +++ b/grails-testing-support-dbcleanup-h2/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } diff --git a/grails-testing-support-dbcleanup-postgresql/build.gradle b/grails-testing-support-dbcleanup-postgresql/build.gradle index 3644ad14619..20d14c8b31a 100644 --- a/grails-testing-support-dbcleanup-postgresql/build.gradle +++ b/grails-testing-support-dbcleanup-postgresql/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-testing-support-http-client/build.gradle b/grails-testing-support-http-client/build.gradle index ddb22c96564..4d4a70e9dd1 100644 --- a/grails-testing-support-http-client/build.gradle +++ b/grails-testing-support-http-client/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-testing-support-mongodb/build.gradle b/grails-testing-support-mongodb/build.gradle index be2333a4500..abd00e18446 100644 --- a/grails-testing-support-mongodb/build.gradle +++ b/grails-testing-support-mongodb/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-testing-support-views-gson/build.gradle b/grails-testing-support-views-gson/build.gradle index 7bfcc80cfec..47d648cbb18 100644 --- a/grails-testing-support-views-gson/build.gradle +++ b/grails-testing-support-views-gson/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-testing-support-web/build.gradle b/grails-testing-support-web/build.gradle index 385b7bca5da..7446ea2c9ca 100755 --- a/grails-testing-support-web/build.gradle +++ b/grails-testing-support-web/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-url-mappings/build.gradle b/grails-url-mappings/build.gradle index 720b4ba50dd..0b9f0afbc46 100644 --- a/grails-url-mappings/build.gradle +++ b/grails-url-mappings/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-validation/build.gradle b/grails-validation/build.gradle index 22cf4c820a1..67e2668871b 100644 --- a/grails-validation/build.gradle +++ b/grails-validation/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-views-core/build.gradle b/grails-views-core/build.gradle index 3da0370d06d..c860e3bff66 100644 --- a/grails-views-core/build.gradle +++ b/grails-views-core/build.gradle @@ -26,6 +26,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-views-gson/build.gradle b/grails-views-gson/build.gradle index 3848ebd373a..95df3ef1653 100644 --- a/grails-views-gson/build.gradle +++ b/grails-views-gson/build.gradle @@ -25,6 +25,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-views-markup/build.gradle b/grails-views-markup/build.gradle index 6d6bc3da1bd..0571c23135e 100644 --- a/grails-views-markup/build.gradle +++ b/grails-views-markup/build.gradle @@ -25,6 +25,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-web-boot/build.gradle b/grails-web-boot/build.gradle index 755fe01739f..8154c1b4742 100644 --- a/grails-web-boot/build.gradle +++ b/grails-web-boot/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-web-common/build.gradle b/grails-web-common/build.gradle index 1053fba613f..41823dae33c 100644 --- a/grails-web-common/build.gradle +++ b/grails-web-common/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-web-core/build.gradle b/grails-web-core/build.gradle index 2b60e56ea90..79dd1e22a37 100644 --- a/grails-web-core/build.gradle +++ b/grails-web-core/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-web-databinding/build.gradle b/grails-web-databinding/build.gradle index 3fc3cd3578f..8ddc1fa1723 100644 --- a/grails-web-databinding/build.gradle +++ b/grails-web-databinding/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-web-mvc/build.gradle b/grails-web-mvc/build.gradle index ac72a8621b2..e582ff018fa 100644 --- a/grails-web-mvc/build.gradle +++ b/grails-web-mvc/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-web-url-mappings/build.gradle b/grails-web-url-mappings/build.gradle index adcd1f6579c..06fcbc5602c 100644 --- a/grails-web-url-mappings/build.gradle +++ b/grails-web-url-mappings/build.gradle @@ -27,6 +27,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion diff --git a/grails-wrapper/build.gradle b/grails-wrapper/build.gradle index d51388ab06d..1764e9fc4e7 100644 --- a/grails-wrapper/build.gradle +++ b/grails-wrapper/build.gradle @@ -24,6 +24,7 @@ plugins { id 'org.apache.grails.buildsrc.publish' id 'org.apache.grails.buildsrc.sbom' id 'org.apache.grails.gradle.grails-code-style' + id 'org.apache.grails.gradle.grails-jacoco' } version = projectVersion