This is an automated email from the ASF dual-hosted git repository. jdaugherty pushed a commit to branch 7.0.x in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 42f17f1d9dea97afb77a84e09a8de3619ce60c6b Author: James Daugherty <[email protected]> AuthorDate: Tue May 27 16:28:55 2025 -0400 [skip ci] fix snapshot dependency validation --- .github/workflows/release.yml | 3 +-- grails-bom/build.gradle | 18 ++++++++++++------ grails-gradle/bom/build.gradle | 13 ++++++++++--- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1506125a68..4d16d41b9c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -84,8 +84,7 @@ jobs: SIGNING_KEY: ${{ secrets.GPG_KEY_ID }} working-directory: 'grails-gradle' run: > - ./gradlew x - initializeSonatypeStagingRepository + ./gradlew initializeSonatypeStagingRepository - name: "📤 Publish Gradle Plugins" env: GRAILS_PUBLISH_RELEASE: 'true' diff --git a/grails-bom/build.gradle b/grails-bom/build.gradle index 708f981d99..72c553d12b 100644 --- a/grails-bom/build.gradle +++ b/grails-bom/build.gradle @@ -106,7 +106,11 @@ tasks.register('extractConstraints', ExtractDependenciesTask).configure { Extrac it.dependsOn(project.tasks.named('generateMetadataFileForMavenPublication'), project.tasks.named('generatePomFileForMavenPublication')) } -tasks.register('validateNoSnapshotDependencies').configure { Task it -> +def validateNoSnapshotDependencies = tasks.register('validateNoSnapshotDependencies') +validateNoSnapshotDependencies.configure { Task it -> + it.group = 'publishing' + it.description = 'Validates that no snapshot dependencies are present in the project when performing a release.' + it.doLast { configurations.each { config -> config.allDependencies.each { dep -> @@ -119,11 +123,13 @@ tasks.register('validateNoSnapshotDependencies').configure { Task it -> } if (ext.isReleaseBuild && ext.isPublishedExternal) { - tasks.named('generateMetadataFileForMavenPublication').configure { - dependsOn(tasks.named('validateNoSnapshotDependencies')) - } - tasks.named('generatePomFileForMavenPublication').configure { - dependsOn(tasks.named('validateNoSnapshotDependencies')) + project.afterEvaluate { + tasks.named('generateMetadataFileForMavenPublication').configure { + dependsOn(validateNoSnapshotDependencies) + } + tasks.named('generatePomFileForMavenPublication').configure { + dependsOn(validateNoSnapshotDependencies) + } } } diff --git a/grails-gradle/bom/build.gradle b/grails-gradle/bom/build.gradle index bc31e537af..e4ba65554d 100644 --- a/grails-gradle/bom/build.gradle +++ b/grails-gradle/bom/build.gradle @@ -60,7 +60,11 @@ dependencies { } } -tasks.register('validateNoSnapshotDependencies').configure { +def noSnapshotDependenciesTask = tasks.register('validateNoSnapshotDependencies') +noSnapshotDependenciesTask.configure { + it.group = 'publishing' + it.description = 'Validates that no snapshot dependencies are present in the project when performing a release.' + doLast { configurations.each { config -> config.allDependencies.each { dep -> @@ -73,13 +77,16 @@ tasks.register('validateNoSnapshotDependencies').configure { } if (ext.isReleaseBuild && ext.isPublishedExternal) { +project.afterEvaluate { + // after eval is required since publications aren't added until after evaluation tasks.named('generateMetadataFileForMavenPublication').configure { - dependsOn(tasks.named('validateNoSnapshotDependencies')) + dependsOn(noSnapshotDependenciesTask) } tasks.named('generatePomFileForMavenPublication').configure { - dependsOn(tasks.named('validateNoSnapshotDependencies')) + dependsOn(noSnapshotDependenciesTask) } } +} Closure determinePropertyName = { String groupId, String artifactId, String version, boolean isBom -> Map<String, String> toSearch = isBom ? gradleBomPlatformDependencies : gradleBomDependencies
