#16 - Added Maven Central distribution
Introduced properties for GPG plugin and forward them to the execution of the release build. Public release versions now trigger the "central" profile being used which will enable the Nexus repository distribution. Renamed GitCommands.checkout(…) to update(…). Made sure that project release build execution now also authenticates with Artifactory beforehand.
This commit is contained in:
@@ -8,4 +8,11 @@ git.password=
|
|||||||
maven.mavenHome=
|
maven.mavenHome=
|
||||||
|
|
||||||
# Deployment
|
# Deployment
|
||||||
|
deployment.repository-prefix=
|
||||||
deployment.password=
|
deployment.password=
|
||||||
|
deployment.api-key=
|
||||||
|
|
||||||
|
# GPG
|
||||||
|
deployment.gpg.keyname=
|
||||||
|
deployment.gpg.password=
|
||||||
|
# deployment.gpg.executable=/usr/local/bin/gpg2
|
||||||
@@ -28,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.core.annotation.Order;
|
import org.springframework.core.annotation.Order;
|
||||||
import org.springframework.data.release.deployment.DeploymentInformation;
|
import org.springframework.data.release.deployment.DeploymentInformation;
|
||||||
import org.springframework.data.release.deployment.DeploymentProperties;
|
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.io.Workspace;
|
||||||
import org.springframework.data.release.model.ArtifactVersion;
|
import org.springframework.data.release.model.ArtifactVersion;
|
||||||
import org.springframework.data.release.model.ModuleIteration;
|
import org.springframework.data.release.model.ModuleIteration;
|
||||||
@@ -247,7 +248,7 @@ class MavenBuildSystem implements BuildSystem {
|
|||||||
List<String> arguments = new ArrayList<>();
|
List<String> arguments = new ArrayList<>();
|
||||||
arguments.add("clean");
|
arguments.add("clean");
|
||||||
arguments.add("deploy");
|
arguments.add("deploy");
|
||||||
arguments.add("-Pci,release");
|
arguments.add("-Pci,release".concat(module.getIteration().isPublic() ? ",central" : ""));
|
||||||
|
|
||||||
arguments.add("-DskipTests");
|
arguments.add("-DskipTests");
|
||||||
|
|
||||||
@@ -258,6 +259,15 @@ class MavenBuildSystem implements BuildSystem {
|
|||||||
arguments.add("-Dartifactory.build-name=\"".concat(information.getBuildName()).concat("\""));
|
arguments.add("-Dartifactory.build-name=\"".concat(information.getBuildName()).concat("\""));
|
||||||
arguments.add("-Dartifactory.build-number=".concat(information.getBuildNumber()));
|
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);
|
mvn.execute(module.getProject(), arguments);
|
||||||
|
|
||||||
return information;
|
return information;
|
||||||
|
|||||||
@@ -95,6 +95,8 @@ public class ReleaseCommands implements CommandMarker {
|
|||||||
|
|
||||||
if (projectName != null) {
|
if (projectName != null) {
|
||||||
|
|
||||||
|
deployment.verifyAuthentication();
|
||||||
|
|
||||||
Project project = Projects.byName(projectName);
|
Project project = Projects.byName(projectName);
|
||||||
ModuleIteration module = iteration.getModule(project);
|
ModuleIteration module = iteration.getModule(project);
|
||||||
|
|
||||||
|
|||||||
@@ -57,6 +57,8 @@ public class DeploymentProperties {
|
|||||||
|
|
||||||
private String repositoryPrefix = "";
|
private String repositoryPrefix = "";
|
||||||
|
|
||||||
|
private Gpg gpg;
|
||||||
|
|
||||||
public String getStagingRepository() {
|
public String getStagingRepository() {
|
||||||
return repositoryPrefix.concat(stagingRepository);
|
return repositoryPrefix.concat(stagingRepository);
|
||||||
}
|
}
|
||||||
@@ -105,4 +107,9 @@ public class DeploymentProperties {
|
|||||||
return URI.create(uri.concat(VERIFICATION_RESOURCE));
|
return URI.create(uri.concat(VERIFICATION_RESOURCE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class Gpg {
|
||||||
|
private String keyname, password, executable;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ public class GitCommands implements CommandMarker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@CliCommand("git update")
|
@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 {
|
throws Exception, InterruptedException {
|
||||||
git.update(ReleaseTrains.getTrainByName(trainName));
|
git.update(ReleaseTrains.getTrainByName(trainName));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,4 +7,9 @@ maven.plugins.versions=org.codehaus.mojo:versions-maven-plugin:2.2
|
|||||||
deployment.server.uri=https://repo.spring.io
|
deployment.server.uri=https://repo.spring.io
|
||||||
deployment.staging-repository=libs-staging-local
|
deployment.staging-repository=libs-staging-local
|
||||||
deployment.username=buildmaster
|
deployment.username=buildmaster
|
||||||
#deployment.password <- local
|
#deployment.password <- local
|
||||||
|
|
||||||
|
# GPG setup
|
||||||
|
deployment.gpg.executable=/usr/local/bin/gpg2
|
||||||
|
# deployment.gpg.keyname
|
||||||
|
# deployment.gpg.password
|
||||||
Reference in New Issue
Block a user