Added post release only option

This commit is contained in:
Marcin Grzejszczak
2018-10-31 10:27:18 +01:00
parent 600dcb0cb4
commit 2cfc8e1714
6 changed files with 54 additions and 6 deletions

View File

@@ -55,11 +55,19 @@ public class SpringReleaser {
public void release(Options options) {
ProjectsAndVersion projectsAndVersion = null;
// if meta release, first clone, then continue as usual
if (options.metaRelease) {
log.info("Meta Release picked. Will iterate over all projects and perform release of each one");
this.properties.getGit().setFetchVersionsFromGit(false);
this.properties.getMetaRelease().setEnabled(options.metaRelease);
prepareForMetaRelease(options);
}
if (this.properties.isPostReleaseTasksOnly()) {
log.info("Skipping release process and moving only to post release");
this.optionsProcessor.postReleaseOptions(options, postReleaseOptionsAgs(options, projectsAndVersion));
return;
}
performReleaseAndPostRelease(options, projectsAndVersion);
}
private void performReleaseAndPostRelease(Options options, ProjectsAndVersion projectsAndVersion) {
if (options.metaRelease) {
ReleaserProperties original = this.properties.copy();
log.debug("The following properties were found [{}]", original);
metaReleaseProjects(options)
@@ -73,6 +81,12 @@ public class SpringReleaser {
this.optionsProcessor.postReleaseOptions(options, postReleaseOptionsAgs(options, projectsAndVersion));
}
private void prepareForMetaRelease(Options options) {
log.info("Meta Release picked. Will iterate over all projects and perform release of each one");
this.properties.getGit().setFetchVersionsFromGit(false);
this.properties.getMetaRelease().setEnabled(options.metaRelease);
}
void processProjectForMetaRelease(ReleaserProperties copy, Options options, String project) {
log.info("Original properties [\n\n{}\n\n]", copy);
File clonedProjectFromOrg = this.releaser.clonedProjectFromOrg(project);

View File

@@ -87,6 +87,23 @@ public class SpringReleaserTests {
assertBuildCommand(this.aware2.properties);
}
@Test
public void should_only_call_post_release() {
SpringReleaser releaser = stubbedSpringReleaser();
this.properties.setPostReleaseTasksOnly(true);
releaser.release(new OptionsBuilder().metaRelease(false).options());
thenOnlyCallsPostRelease();
}
private void thenOnlyCallsPostRelease() {
BDDMockito.then(this.optionsProcessor).should().postReleaseOptions(
BDDMockito.any(Options.class), BDDMockito.any(Args.class));
BDDMockito.then(this.optionsProcessor).should(BDDMockito.never())
.processOptions(BDDMockito.any(Options.class), BDDMockito.any(Args.class));
}
private void assertBuildCommand(Queue<ReleaserProperties> properties) {
BDDAssertions.then(properties.poll().getMaven().getBuildCommand())
.isEqualTo("./scripts/noIntegration.sh");