Don't run post release tasks if main ones failed

This commit is contained in:
Marcin Grzejszczak
2020-01-21 14:17:36 +01:00
parent 0506113ee7
commit 7632b99031
2 changed files with 47 additions and 0 deletions

View File

@@ -38,6 +38,7 @@ import releaser.internal.sagan.SaganUpdater;
import releaser.internal.spring.Arguments;
import releaser.internal.spring.SpringReleaser;
import releaser.internal.tasks.ReleaseReleaserTask;
import releaser.internal.tasks.TrainPostReleaseReleaserTask;
import releaser.internal.tasks.composite.MetaReleaseCompositeTask;
import releaser.internal.tasks.composite.ReleaseCompositeTask;
import releaser.internal.tasks.release.BuildProjectReleaseTask;
@@ -368,6 +369,7 @@ public class SpringMetaReleaseAcceptanceTests
.getBean(TestExecutionResultHandler.class);
FirstTask firstTask = context.getBean(FirstTask.class);
SecondTask secondTask = context.getBean(SecondTask.class);
PostReleaseTask postReleaseTask = context.getBean(PostReleaseTask.class);
ExecutionResult result = releaser
.release(new OptionsBuilder().metaRelease(true).options());
@@ -386,6 +388,8 @@ public class SpringMetaReleaseAcceptanceTests
.equals("spring-cloud-release")));
BDDMockito.then(secondTask).should(BDDMockito.never())
.runTask(BDDMockito.any(Arguments.class));
BDDMockito.then(postReleaseTask).should(BDDMockito.never())
.runTask(BDDMockito.any(Arguments.class));
});
}
@@ -521,6 +525,11 @@ public class SpringMetaReleaseAcceptanceTests
return BDDMockito.spy(new SecondTask());
}
@Bean
PostReleaseTask firstPostReleaseTask() {
return BDDMockito.spy(new PostReleaseTask());
}
@Bean
MetaReleaseCompositeTask metaReleaseCompositeTask(ApplicationContext context) {
return new MetaReleaseCompositeTask(context);
@@ -604,3 +613,38 @@ class SecondTask implements ReleaseReleaserTask {
}
}
class PostReleaseTask implements TrainPostReleaseReleaserTask {
@Override
public String name() {
return "third";
}
@Override
public String shortName() {
return "3";
}
@Override
public String header() {
return "THIRD";
}
@Override
public String description() {
return name();
}
@Override
public ExecutionResult runTask(Arguments args)
throws BuildUnstableException, RuntimeException {
return ExecutionResult.success();
}
@Override
public int getOrder() {
return 3;
}
}

View File

@@ -66,6 +66,9 @@ class DefaultSpringReleaser implements SpringReleaser {
ProjectsToRun projectsToRun = releaseProjects(optionsAndProperties);
ExecutionResult releaseTasksExecutionResult = runReleaseTasks(
optionsAndProperties, projectsToRun, releaseTasksToRun);
if (releaseTasksExecutionResult.isFailure()) {
return releaseTasksExecutionResult;
}
TasksToRun postReleaseTrainTasksToRun = postReleaseTrainTasksFromOptions(
optionsAndProperties);
ExecutionResult postReleaseTrainTasksExecutionResult = runPostReleaseTasks(