@@ -99,6 +99,18 @@ public class BuildOperations {
|
||||
logger.log(train, "Distribution build: %s", summary);
|
||||
}
|
||||
|
||||
/**
|
||||
* Triggers the distribution builds for the given module.
|
||||
*
|
||||
* @param iteration must not be {@literal null}.
|
||||
*/
|
||||
public void distributeResources(ModuleIteration iteration) {
|
||||
|
||||
Assert.notNull(iteration, "ModuleIteration must not be null!");
|
||||
|
||||
doWithBuildSystem(iteration, BuildSystem::triggerDistributionBuild);
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs the release build for all modules in the given {@link TrainIteration}.
|
||||
*
|
||||
|
||||
@@ -28,6 +28,8 @@ import org.springframework.data.release.build.BuildOperations;
|
||||
import org.springframework.data.release.deployment.DeploymentInformation;
|
||||
import org.springframework.data.release.deployment.DeploymentOperations;
|
||||
import org.springframework.data.release.git.GitOperations;
|
||||
import org.springframework.data.release.issues.IssueTrackerCommands;
|
||||
import org.springframework.data.release.issues.github.GitHubCommands;
|
||||
import org.springframework.data.release.misc.ReleaseOperations;
|
||||
import org.springframework.data.release.model.ArtifactVersion;
|
||||
import org.springframework.data.release.model.ModuleIteration;
|
||||
@@ -53,6 +55,8 @@ class ReleaseCommands extends TimedCommand {
|
||||
@NonNull ReleaseOperations misc;
|
||||
@NonNull DeploymentOperations deployment;
|
||||
@NonNull BuildOperations build;
|
||||
@NonNull IssueTrackerCommands tracker;
|
||||
@NonNull GitHubCommands gitHub;
|
||||
|
||||
@CliCommand("release predict")
|
||||
public String predictTrainAndIteration() {
|
||||
@@ -62,6 +66,30 @@ class ReleaseCommands extends TimedCommand {
|
||||
orElse(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Composite command to ship a full release.
|
||||
*
|
||||
* @param iteration
|
||||
* @throws Exception
|
||||
*/
|
||||
@CliCommand(value = "ship-it")
|
||||
public void shipIt(@CliOption(key = "", mandatory = true) TrainIteration iteration) throws Exception {
|
||||
|
||||
tracker.trackerPrepare(iteration);
|
||||
|
||||
prepare(iteration);
|
||||
|
||||
buildRelease(iteration, null);
|
||||
|
||||
conclude(iteration);
|
||||
|
||||
gitHub.push(iteration);
|
||||
|
||||
distribute(iteration, null);
|
||||
|
||||
tracker.closeIteration(iteration);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the release of the given iteration of the given train.
|
||||
*
|
||||
@@ -152,10 +180,19 @@ class ReleaseCommands extends TimedCommand {
|
||||
* @throws Exception
|
||||
*/
|
||||
@CliCommand("release distribute")
|
||||
public void distribute(@CliOption(key = "", mandatory = true) TrainIteration iteration) {
|
||||
public void distribute(@CliOption(key = "", mandatory = true) TrainIteration iteration,
|
||||
@CliOption(key = "project", mandatory = false) String projectName) {
|
||||
|
||||
git.checkout(iteration);
|
||||
build.distributeResources(iteration);
|
||||
|
||||
if (projectName != null) {
|
||||
Project project = Projects.requiredByName(projectName);
|
||||
ModuleIteration module = iteration.getModule(project);
|
||||
|
||||
build.distributeResources(module);
|
||||
} else {
|
||||
build.distributeResources(iteration);
|
||||
}
|
||||
}
|
||||
|
||||
private static String getTrainNameForCommonsVersion(ArtifactVersion version) {
|
||||
|
||||
@@ -46,7 +46,7 @@ import org.springframework.util.StringUtils;
|
||||
@CliComponent
|
||||
@RequiredArgsConstructor
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
|
||||
class IssueTrackerCommands extends TimedCommand {
|
||||
public class IssueTrackerCommands extends TimedCommand {
|
||||
|
||||
@NonNull PluginRegistry<IssueTracker, Project> tracker;
|
||||
@NonNull Executor executor;
|
||||
|
||||
@@ -45,7 +45,7 @@ import org.springframework.shell.core.annotation.CliOption;
|
||||
@CliComponent
|
||||
@RequiredArgsConstructor
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
|
||||
class GitHubCommands extends TimedCommand {
|
||||
public class GitHubCommands extends TimedCommand {
|
||||
|
||||
@NonNull PluginRegistry<IssueTracker, Project> tracker;
|
||||
@NonNull GitHub gitHub;
|
||||
|
||||
Reference in New Issue
Block a user