|
@@ -10,12 +10,11 @@
|
|
|
package org.elasticsearch.gradle.internal.conventions;
|
|
|
|
|
|
import groovy.util.Node;
|
|
|
+import nmcp.NmcpPlugin;
|
|
|
|
|
|
import com.github.jengelman.gradle.plugins.shadow.ShadowExtension;
|
|
|
import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin;
|
|
|
|
|
|
-import nmcp.NmcpPlugin;
|
|
|
-
|
|
|
import org.elasticsearch.gradle.internal.conventions.info.GitInfo;
|
|
|
import org.elasticsearch.gradle.internal.conventions.precommit.PomValidationPrecommitPlugin;
|
|
|
import org.elasticsearch.gradle.internal.conventions.util.Util;
|
|
@@ -41,6 +40,8 @@ import org.gradle.api.tasks.SourceSet;
|
|
|
import org.gradle.api.tasks.bundling.Jar;
|
|
|
import org.gradle.initialization.layout.BuildLayout;
|
|
|
import org.gradle.language.base.plugins.LifecycleBasePlugin;
|
|
|
+import org.gradle.plugins.signing.SigningExtension;
|
|
|
+import org.gradle.plugins.signing.SigningPlugin;
|
|
|
import org.w3c.dom.Element;
|
|
|
|
|
|
import java.io.File;
|
|
@@ -69,6 +70,7 @@ public class PublishPlugin implements Plugin<Project> {
|
|
|
project.getPluginManager().apply(PomValidationPrecommitPlugin.class);
|
|
|
project.getPluginManager().apply(LicensingPlugin.class);
|
|
|
project.getPluginManager().apply(NmcpPlugin.class);
|
|
|
+ project.getPluginManager().apply(SigningPlugin.class);
|
|
|
configureJavadocJar(project);
|
|
|
configureSourcesJar(project);
|
|
|
configurePomGeneration(project);
|
|
@@ -79,6 +81,13 @@ public class PublishPlugin implements Plugin<Project> {
|
|
|
private void configurePublications(Project project) {
|
|
|
var publishingExtension = project.getExtensions().getByType(PublishingExtension.class);
|
|
|
var publication = publishingExtension.getPublications().create("elastic", MavenPublication.class);
|
|
|
+ Provider<String> signingKey = project.getProviders().gradleProperty("signingKey");
|
|
|
+ if (signingKey.isPresent()) {
|
|
|
+ SigningExtension signing = project.getExtensions().getByType(SigningExtension.class);
|
|
|
+ signing.useInMemoryPgpKeys(signingKey.get(), project.getProviders().gradleProperty("signingPassword").get());
|
|
|
+ signing.sign(publication);
|
|
|
+ }
|
|
|
+
|
|
|
project.afterEvaluate(project1 -> {
|
|
|
if (project1.getPlugins().hasPlugin(ShadowPlugin.class)) {
|
|
|
configureWithShadowPlugin(project1, publication);
|