Skip to content

Commit

Permalink
Merge pull request #121 from patbos/JENKINS-28937_manual_trigger_problem
Browse files Browse the repository at this point in the history
JENKINS-28937 Manual trigger for the downstream job is shown even if the build failed
  • Loading branch information
patbos committed Jun 20, 2015
2 parents 7b1ee0d + c0023e1 commit de38cfc
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ public static ManualStep getManualStepLatest(AbstractProject project, AbstractBu
AbstractBuild upstreamBuild = BuildUtil.match(upstream.getBuilds(), firstBuild);
if (build == null) {
if (upstreamBuild != null && !upstreamBuild.isBuilding() && !ProjectUtil.isQueued(project, firstBuild)) {
return new ManualStep(upstream.getRelativeNameFrom(Jenkins.getInstance()), String.valueOf(upstreamBuild.getNumber()), true, project.hasPermission(Item.BUILD), null);
return new ManualStep(upstream.getRelativeNameFrom(Jenkins.getInstance()), String.valueOf(upstreamBuild.getNumber()), !upstreamBuild.getResult().isWorseThan(Result.UNSTABLE), project.hasPermission(Item.BUILD), null);
}
} else {
if (upstreamBuild != null && !build.isBuilding() && !ProjectUtil.isQueued(project, firstBuild) && build.getResult().isWorseThan(Result.UNSTABLE)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -261,4 +261,29 @@ public void getManualStepLatestUpstreamDeleted() throws Exception {

}

@Test
@Bug(28937)
public void testFailure() throws Exception {
FreeStyleProject a = jenkins.createFreeStyleProject("A");
FreeStyleProject b = jenkins.createFreeStyleProject("B");
FreeStyleProject c = jenkins.createFreeStyleProject("C");
a.getPublishersList().add(new BuildPipelineTrigger("B", null));
b.getPublishersList().add(new BuildPipelineTrigger("C", null));
b.getBuildersList().add(new FailureBuilder());
jenkins.getInstance().rebuildDependencyGraph();
jenkins.setQuietPeriod(0);
AbstractBuild firstBuild = jenkins.buildAndAssertSuccess(a);
jenkins.waitUntilNoActivity();

DeliveryPipelineView view = new DeliveryPipelineView("Pipeline", jenkins.getInstance());
view.triggerManual("B", "A", "1");

jenkins.waitUntilNoActivity();

ManualStep step = ManualStep.getManualStepLatest(c, null, firstBuild);
assertNotNull(step);
assertFalse(step.isEnabled());

}

}

0 comments on commit de38cfc

Please sign in to comment.