1010package org .elasticsearch .gradle .internal .conventions ;
1111
1212import groovy .util .Node ;
13+ import nmcp .NmcpPlugin ;
1314
1415import com .github .jengelman .gradle .plugins .shadow .ShadowExtension ;
1516import com .github .jengelman .gradle .plugins .shadow .ShadowPlugin ;
1617
17- import nmcp .NmcpPlugin ;
18-
1918import org .elasticsearch .gradle .internal .conventions .info .GitInfo ;
2019import org .elasticsearch .gradle .internal .conventions .precommit .PomValidationPrecommitPlugin ;
2120import org .elasticsearch .gradle .internal .conventions .util .Util ;
4140import org .gradle .api .tasks .bundling .Jar ;
4241import org .gradle .initialization .layout .BuildLayout ;
4342import org .gradle .language .base .plugins .LifecycleBasePlugin ;
43+ import org .gradle .plugins .signing .SigningExtension ;
44+ import org .gradle .plugins .signing .SigningPlugin ;
4445import org .w3c .dom .Element ;
4546
4647import java .io .File ;
@@ -69,6 +70,7 @@ public void apply(Project project) {
6970 project .getPluginManager ().apply (PomValidationPrecommitPlugin .class );
7071 project .getPluginManager ().apply (LicensingPlugin .class );
7172 project .getPluginManager ().apply (NmcpPlugin .class );
73+ project .getPluginManager ().apply (SigningPlugin .class );
7274 configureJavadocJar (project );
7375 configureSourcesJar (project );
7476 configurePomGeneration (project );
@@ -79,6 +81,13 @@ public void apply(Project project) {
7981 private void configurePublications (Project project ) {
8082 var publishingExtension = project .getExtensions ().getByType (PublishingExtension .class );
8183 var publication = publishingExtension .getPublications ().create ("elastic" , MavenPublication .class );
84+ Provider <String > signingKey = project .getProviders ().gradleProperty ("signingKey" );
85+ if (signingKey .isPresent ()) {
86+ SigningExtension signing = project .getExtensions ().getByType (SigningExtension .class );
87+ signing .useInMemoryPgpKeys (signingKey .get (), project .getProviders ().gradleProperty ("signingPassword" ).get ());
88+ signing .sign (publication );
89+ }
90+
8291 project .afterEvaluate (project1 -> {
8392 if (project1 .getPlugins ().hasPlugin (ShadowPlugin .class )) {
8493 configureWithShadowPlugin (project1 , publication );
0 commit comments