Skip to content

Commit

Permalink
JENKINS-30801 Copy over ParametersAction as well
Browse files Browse the repository at this point in the history
  • Loading branch information
Dan Alvizu committed Oct 5, 2015
1 parent 5584922 commit 13fa2c9
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 16 deletions.
Expand Up @@ -418,7 +418,7 @@ public int rerunBuild(final String externalizableId) {
final AbstractBuild<?, ?> triggerBuild = (AbstractBuild<?, ?>) Run.fromExternalizableId(externalizableId);
final AbstractProject<?, ?> triggerProject = triggerBuild.getProject();
final Future<?> future = triggerProject.scheduleBuild2(triggerProject.getQuietPeriod(), new MyUserIdCause(),
filterCauseActions(triggerBuild.getActions()));
filterActions(triggerBuild.getActions()));

AbstractBuild<?, ?> result = triggerBuild;
try {
Expand Down Expand Up @@ -575,8 +575,8 @@ private static ParametersAction mergeParameters(final ParametersAction base, fin


/**
* Filter out the list of actions so that it only includes CauseActions, but exclude
* CauseActions containing a UserIdCause
* Filter out the list of actions so that it only includes {@link ParametersAction} and
* CauseActions, but exclude CauseActions containing a UserIdCause
*
* We want to include CauseAction because that includes upstream cause actions, which
* are inherited in downstream builds.
Expand All @@ -592,7 +592,7 @@ private static ParametersAction mergeParameters(final ParametersAction base, fin
* a collection of build actions.
* @return a collection of build actions with all UserId causes removed.
*/
private List<Action> filterCauseActions(final List<Action> actions) {
private List<Action> filterActions(final List<Action> actions) {
final List<Action> retval = new ArrayList<Action>();
for (final Action action : actions) {
if (action instanceof CauseAction) {
Expand All @@ -601,6 +601,9 @@ private List<Action> filterCauseActions(final List<Action> actions) {
retval.add(action);
}
}
else if (action instanceof ParametersAction) {
retval.add(action);
}
}
return retval;
}
Expand Down
Expand Up @@ -25,23 +25,14 @@
package au.com.centrumsystems.hudson.plugin.buildpipeline;

import hudson.Launcher;
import hudson.model.AbstractBuild;
import hudson.model.Action;
import hudson.model.BuildListener;
import hudson.model.Cause;
import hudson.model.FreeStyleBuild;
import hudson.model.ItemGroup;
import hudson.model.TopLevelItem;
import hudson.model.*;
import hudson.model.Cause.UpstreamCause;
import hudson.model.FreeStyleProject;
import hudson.model.Hudson;
import hudson.model.Job;
import hudson.model.Run;
import hudson.security.Permission;

import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import hudson.triggers.SCMTrigger;
Expand Down Expand Up @@ -408,9 +399,11 @@ public boolean perform(AbstractBuild<?, ?> abstractBuild, Launcher launcher, Bui
jenkins.waitUntilNoActivity();

// mock trigget the downstream build as being triggered by upstream
ParametersAction parametersAction = new ParametersAction(
Arrays.asList((ParameterValue)new StringParameterValue("foo", "bar")));
UpstreamCause upstreamCause = new hudson.model.Cause.UpstreamCause(
(Run<?, ?>) upstreamBuild.getLastBuild());
downstreamBuild.scheduleBuild2(0, upstreamCause);
downstreamBuild.scheduleBuild2(0, upstreamCause, parametersAction);
jenkins.waitUntilNoActivity();

BuildPipelineView pipeline = BuildPipelineViewFactory.getBuildPipelineView("pipeline", "",
Expand All @@ -426,6 +419,11 @@ public boolean perform(AbstractBuild<?, ?> abstractBuild, Launcher launcher, Bui
assertEquals(1, downstreamBuild.getLastBuild().getActions(MockAction.class).size());
// upstream cause copied
assertEquals(1, downstreamBuild.getLastBuild().getCauses().size());
// parametersAction copied
assertNotNull(downstreamBuild.getLastBuild().getAction(ParametersAction.class));
StringParameterValue stringParam = (StringParameterValue) downstreamBuild.getLastBuild()
.getAction(ParametersAction.class).getParameter("foo");
assertEquals("bar", stringParam.value);
assertEquals(upstreamCause, downstreamBuild.getLastBuild().getCauses().get(0));
assertEquals(mockScmTriggerCause, upstreamCause.getUpstreamCauses().get(0));
}
Expand Down

0 comments on commit 13fa2c9

Please sign in to comment.