From 2885265cc37762b8ff33ae0e08dd4ece5693a53f Mon Sep 17 00:00:00 2001 From: "opensearch-trigger-bot[bot]" <98922864+opensearch-trigger-bot[bot]@users.noreply.github.com> Date: Fri, 5 May 2023 10:18:54 -0700 Subject: [PATCH] Fixes issue with publishing Job Scheduler artifacts to correct maven coordinates (#377) (#378) * Artifacts path update at right location Signed-off-by: Varun Jain * Artifacts path update at right location Signed-off-by: Varun Jain * Correct the order of task dependencies Signed-off-by: Craig Perkins * Disable POM validation Signed-off-by: Craig Perkins * Switch back to publishAllPublicationsToSnapshotsRepository Signed-off-by: Craig Perkins * Add staging maven repo Signed-off-by: Craig Perkins --------- Signed-off-by: Varun Jain Signed-off-by: Craig Perkins Co-authored-by: Varun Jain (cherry picked from commit db8edff26493adee4ad700deb7fad168cdd3d0fc) Co-authored-by: Craig Perkins --- build.gradle | 105 ++++++++++++++++++++++++++++++++---------------- settings.gradle | 1 - 2 files changed, 70 insertions(+), 36 deletions(-) diff --git a/build.gradle b/build.gradle index 89eaa755..ae1d5684 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ buildscript { } plugins { - id 'com.netflix.nebula.ospackage' version "11.0.0" + id 'com.netflix.nebula.ospackage' version "11.3.0" id 'java-library' id "com.diffplug.spotless" version "6.17.0" apply false } @@ -52,7 +52,37 @@ forbiddenApisTest.ignoreFailures = true validateNebulaPom.enabled = false loggerUsageCheck.enabled = false -tasks.matching {it.path in [":publishNebulaPublicationToSnapshotsRepository"]}.all { task -> +// Order is publish nebula, then jar then zip + +tasks.whenTaskAdded {task -> + if(task.name.contains("validatePluginJarPom") || task.name.contains("validatePluginZipPom")) { + task.enabled = false + } +} + +tasks.matching {it.path in [ + ":generatePomFileForPluginJarPublication" +]}.all { task -> + task.mustRunAfter 'publishNebulaPublicationToMavenLocal', 'publishNebulaPublicationToSnapshotsRepository', 'publishNebulaPublicationToStagingRepository' +} + +tasks.matching {it.path in [ + ":publishPluginJarPublicationToMavenLocal", + ":validatePluginJarPom" +]}.all { task -> + task.dependsOn 'generatePomFileForPluginJarPublication' +} + +tasks.matching {it.path in [ + ":generatePomFileForPluginZipPublication" +]}.all { task -> + task.mustRunAfter 'publishPluginJarPublicationToMavenLocal', 'publishPluginJarPublicationToSnapshotsRepository', 'publishPluginJarPublicationToStagingRepository' +} + +tasks.matching {it.path in [ + ":publishPluginZipPublicationToMavenLocal", + ":validatePluginZipPom" +]}.all { task -> task.dependsOn 'generatePomFileForPluginZipPublication' } @@ -93,48 +123,49 @@ allprojects { // Default to the apache license project.ext.licenseName = 'The Apache Software License, Version 2.0' project.ext.licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt' - plugins.withType(ShadowPlugin).whenPluginAdded { - publishing { - repositories { - maven { - name = 'staging' - url = "${rootProject.buildDir}/local-staging-repo" - } - } - publications { - // add license information to generated poms - all { - pom { - name = "opensearch-job-scheduler" - description = "OpenSearch Job Scheduler plugin" - groupId = "org.opensearch.plugin" - } - pom.withXml { XmlProvider xml -> - Node node = xml.asNode() - node.appendNode('inceptionYear', '2021') - - Node license = node.appendNode('licenses').appendNode('license') - license.appendNode('name', project.licenseName) - license.appendNode('url', project.licenseUrl) - - Node developer = node.appendNode('developers').appendNode('developer') - developer.appendNode('name', 'OpenSearch') - developer.appendNode('url', 'https://github.com/opensearch-project/job-scheduler') - } - } - } - } - } } publishing { publications { - pluginZip(MavenPublication) { publication -> + pluginZip(MavenPublication) { pom { name = "opensearch-job-scheduler" description = "OpenSearch Job Scheduler plugin" + packaging = "zip" groupId = "org.opensearch.plugin" } + pom.withXml { XmlProvider xml -> + Node node = xml.asNode() + node.appendNode('inceptionYear', '2021') + + Node license = node.appendNode('licenses').appendNode('license') + license.appendNode('name', project.licenseName) + license.appendNode('url', project.licenseUrl) + + Node developer = node.appendNode('developers').appendNode('developer') + developer.appendNode('name', 'OpenSearch') + developer.appendNode('url', 'https://github.com/opensearch-project/job-scheduler') + } + } + pluginJar(MavenPublication){ + pom { + name = "opensearch-job-scheduler" + description = "OpenSearch Job Scheduler plugin" + packaging = "jar" + groupId = "org.opensearch" + } + pom.withXml { XmlProvider xml -> + Node node = xml.asNode() + node.appendNode('inceptionYear', '2021') + + Node license = node.appendNode('licenses').appendNode('license') + license.appendNode('name', project.licenseName) + license.appendNode('url', project.licenseUrl) + + Node developer = node.appendNode('developers').appendNode('developer') + developer.appendNode('name', 'OpenSearch') + developer.appendNode('url', 'https://github.com/opensearch-project/job-scheduler') + } } } repositories { @@ -146,6 +177,10 @@ publishing { password "$System.env.SONATYPE_PASSWORD" } } + maven { + name = 'Staging' + url = "${rootProject.buildDir}/local-staging-repo" + } } } diff --git a/settings.gradle b/settings.gradle index 89529542..033f4443 100644 --- a/settings.gradle +++ b/settings.gradle @@ -10,4 +10,3 @@ project(":spi").name = rootProject.name + "-spi" include "sample-extension-plugin" project(":sample-extension-plugin").name = rootProject.name + "-sample-extension" -startParameter.excludedTaskNames=["publishPluginZipPublicationToMavenLocal", "publishPluginZipPublicationToStagingRepository"]