diff --git a/release-tools/src/main/java/org/springframework/data/release/build/BuildOperations.java b/release-tools/src/main/java/org/springframework/data/release/build/BuildOperations.java index 17b53d3..da14599 100644 --- a/release-tools/src/main/java/org/springframework/data/release/build/BuildOperations.java +++ b/release-tools/src/main/java/org/springframework/data/release/build/BuildOperations.java @@ -139,6 +139,18 @@ public class BuildOperations { return doWithBuildSystem(module, BuildSystem::triggerBuild); } + /** + * Triggers the pre-release checks for all modules of the given {@link TrainIteration}. + * + * @param iteration must not be {@literal null}. + */ + public void runPreReleaseChecks(TrainIteration iteration) { + + Assert.notNull(iteration, "Train iteration must not be null!"); + + doWithBuildSystem(iteration, (system, module) -> system.triggerPreReleaseCheck(module)); + } + /** * Selects the build system for each {@link ModuleIteration} contained in the given {@link TrainIteration} and * executes the given function for it. diff --git a/release-tools/src/main/java/org/springframework/data/release/build/BuildSystem.java b/release-tools/src/main/java/org/springframework/data/release/build/BuildSystem.java index b2590dc..d4eaa4e 100644 --- a/release-tools/src/main/java/org/springframework/data/release/build/BuildSystem.java +++ b/release-tools/src/main/java/org/springframework/data/release/build/BuildSystem.java @@ -62,4 +62,12 @@ interface BuildSystem extends Plugin { ModuleIteration triggerDistributionBuild(ModuleIteration module); ModuleIteration triggerBuild(ModuleIteration module); + + /** + * Triggers the pre-release checks for the given {@link ModuleIteration}. + * + * @param module must not be {@literal null}. + * @return + */ + ModuleIteration triggerPreReleaseCheck(ModuleIteration module); } 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 7c7d4ed..d034f67 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 @@ -265,6 +265,17 @@ class MavenBuildSystem implements BuildSystem { return module; } + /* + * (non-Javadoc) + * @see org.springframework.data.release.build.BuildSystem#triggerPreReleaseCheck(org.springframework.data.release.model.ModuleIteration) + */ + public ModuleIteration triggerPreReleaseCheck(ModuleIteration module) { + + mvn.execute(module.getProject(), "clean", "verify", "-Ppre-release"); + + return module; + } + /** * Triggers Maven commands to deploy module artifacts to Spring Artifactory. * 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 c1e06be..14918f2 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 @@ -76,6 +76,8 @@ class ReleaseCommands extends TimedCommand { git.prepare(iteration); + build.runPreReleaseChecks(iteration); + misc.prepareChangelogs(iteration); misc.updateResources(iteration); build.updateProjectDescriptors(iteration, Phase.PREPARE);