diff --git a/release-tools/application-local.template b/release-tools/application-local.template index 57d53ff..33be287 100644 --- a/release-tools/application-local.template +++ b/release-tools/application-local.template @@ -8,4 +8,11 @@ git.password= maven.mavenHome= # Deployment +deployment.repository-prefix= deployment.password= +deployment.api-key= + +# GPG +deployment.gpg.keyname= +deployment.gpg.password= +# deployment.gpg.executable=/usr/local/bin/gpg2 \ No newline at end of file diff --git a/release-tools/src/main/java/org/springframework/data/release/build/MavenBuildSystem.java b/release-tools/src/main/java/org/springframework/data/release/build/MavenBuildSystem.java index c9a4537..c798061 100644 --- a/release-tools/src/main/java/org/springframework/data/release/build/MavenBuildSystem.java +++ b/release-tools/src/main/java/org/springframework/data/release/build/MavenBuildSystem.java @@ -28,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.annotation.Order; import org.springframework.data.release.deployment.DeploymentInformation; import org.springframework.data.release.deployment.DeploymentProperties; +import org.springframework.data.release.deployment.DeploymentProperties.Gpg; import org.springframework.data.release.io.Workspace; import org.springframework.data.release.model.ArtifactVersion; import org.springframework.data.release.model.ModuleIteration; @@ -247,7 +248,7 @@ class MavenBuildSystem implements BuildSystem { List arguments = new ArrayList<>(); arguments.add("clean"); arguments.add("deploy"); - arguments.add("-Pci,release"); + arguments.add("-Pci,release".concat(module.getIteration().isPublic() ? ",central" : "")); arguments.add("-DskipTests"); @@ -258,6 +259,15 @@ class MavenBuildSystem implements BuildSystem { arguments.add("-Dartifactory.build-name=\"".concat(information.getBuildName()).concat("\"")); arguments.add("-Dartifactory.build-number=".concat(information.getBuildNumber())); + if (module.getIteration().isPublic()) { + + Gpg gpg = properties.getGpg(); + + arguments.add("-Dgpg.executable=".concat(gpg.getExecutable())); + arguments.add("-Dgpg.keyname=".concat(gpg.getKeyname())); + arguments.add("-Dgpg.password=".concat(gpg.getPassword())); + } + mvn.execute(module.getProject(), arguments); return information; diff --git a/release-tools/src/main/java/org/springframework/data/release/cli/ReleaseCommands.java b/release-tools/src/main/java/org/springframework/data/release/cli/ReleaseCommands.java index 55c2715..e0b6782 100644 --- a/release-tools/src/main/java/org/springframework/data/release/cli/ReleaseCommands.java +++ b/release-tools/src/main/java/org/springframework/data/release/cli/ReleaseCommands.java @@ -95,6 +95,8 @@ public class ReleaseCommands implements CommandMarker { if (projectName != null) { + deployment.verifyAuthentication(); + Project project = Projects.byName(projectName); ModuleIteration module = iteration.getModule(project); diff --git a/release-tools/src/main/java/org/springframework/data/release/deployment/DeploymentProperties.java b/release-tools/src/main/java/org/springframework/data/release/deployment/DeploymentProperties.java index 0ef5458..e4e00c8 100644 --- a/release-tools/src/main/java/org/springframework/data/release/deployment/DeploymentProperties.java +++ b/release-tools/src/main/java/org/springframework/data/release/deployment/DeploymentProperties.java @@ -57,6 +57,8 @@ public class DeploymentProperties { private String repositoryPrefix = ""; + private Gpg gpg; + public String getStagingRepository() { return repositoryPrefix.concat(stagingRepository); } @@ -105,4 +107,9 @@ public class DeploymentProperties { return URI.create(uri.concat(VERIFICATION_RESOURCE)); } } + + @Data + public static class Gpg { + private String keyname, password, executable; + } } diff --git a/release-tools/src/main/java/org/springframework/data/release/git/GitCommands.java b/release-tools/src/main/java/org/springframework/data/release/git/GitCommands.java index cbfdb81..56ce187 100644 --- a/release-tools/src/main/java/org/springframework/data/release/git/GitCommands.java +++ b/release-tools/src/main/java/org/springframework/data/release/git/GitCommands.java @@ -57,7 +57,7 @@ public class GitCommands implements CommandMarker { } @CliCommand("git update") - public void checkout(@CliOption(key = { "", "train" }, mandatory = true) String trainName) + public void update(@CliOption(key = { "", "train" }, mandatory = true) String trainName) throws Exception, InterruptedException { git.update(ReleaseTrains.getTrainByName(trainName)); } diff --git a/release-tools/src/main/resources/application.properties b/release-tools/src/main/resources/application.properties index 2ef0c37..08e8d40 100644 --- a/release-tools/src/main/resources/application.properties +++ b/release-tools/src/main/resources/application.properties @@ -7,4 +7,9 @@ maven.plugins.versions=org.codehaus.mojo:versions-maven-plugin:2.2 deployment.server.uri=https://repo.spring.io deployment.staging-repository=libs-staging-local deployment.username=buildmaster -#deployment.password <- local \ No newline at end of file +#deployment.password <- local + +# GPG setup +deployment.gpg.executable=/usr/local/bin/gpg2 +# deployment.gpg.keyname +# deployment.gpg.password \ No newline at end of file