Skip to content

Commit

Permalink
Merge 72cc2eb into e4398c8
Browse files Browse the repository at this point in the history
  • Loading branch information
OlgaMaciaszek committed Jul 4, 2016
2 parents e4398c8 + 72cc2eb commit 124d4aa
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 2 deletions.
Expand Up @@ -34,6 +34,8 @@
import org.kohsuke.stapler.DataBoundConstructor;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

Expand Down Expand Up @@ -104,12 +106,18 @@ static void setVersion(AbstractBuild build, String version) {
} else {
build.replaceAction(action);
}
build.replaceAction(getVersionParameterAction(version));
build.replaceAction(getVersionParameterAction(build, version));
}

// Backwards compatibility for 0.9.9 and older
private static ParametersAction getVersionParameterAction(String version) {
private static ParametersAction getVersionParameterAction(AbstractBuild build, String version) {
ParameterValue value = new StringParameterValue(PipelineVersionContributor.VERSION_PARAMETER, version);
ParametersAction action = build.getAction(ParametersAction.class);
if (action != null) {
List<ParameterValue> parameters = new ArrayList<ParameterValue>(action.getParameters());
parameters.add(value);
return new ParametersAction(parameters);
}
return new ParametersAction(value);
}

Expand Down
Expand Up @@ -31,6 +31,9 @@
import hudson.model.ParametersDefinitionProperty;
import hudson.model.StringParameterDefinition;
import hudson.model.StringParameterValue;
import hudson.plugins.parameterizedtrigger.AbstractBuildParameters;
import hudson.plugins.parameterizedtrigger.BooleanParameterConfig;
import hudson.plugins.parameterizedtrigger.BooleanParameters;
import hudson.tasks.BuildTrigger;
import hudson.util.StreamTaskListener;
import org.apache.commons.io.FileUtils;
Expand All @@ -42,6 +45,7 @@
import org.jvnet.hudson.test.TestBuilder;

import java.io.IOException;
import java.util.Arrays;

import static org.junit.Assert.*;

Expand Down Expand Up @@ -211,6 +215,40 @@ public void testWithBuildNameSetterPluginAndAdditionalParameters() throws Except
assertEquals("1.0.0.1", b.getLastBuild().getBuildVariableResolver().resolve(PIPELINE_VERSION));
}

@Test
public void testVersionContributorIsNotBreakingParametersPassing() throws Exception {
FreeStyleProject firstProject = jenkins.createFreeStyleProject("firstProject");
FreeStyleProject secondProject = jenkins.createFreeStyleProject("secondProject");
firstProject.getPublishersList().add(
new BuildPipelineTrigger("secondProject", Arrays.<AbstractBuildParameters>asList(new BooleanParameters(Arrays.asList(new BooleanParameterConfig("test", true))))));
firstProject.save();

firstProject.getBuildWrappersList().add(new PipelineVersionContributor(true, "1.0.0.${BUILD_NUMBER}"));

firstProject.getBuildersList().add(new AssertPipelineVersion("1.0.0.1"));
secondProject.getBuildersList().add(new AssertNoPipelineVersion());

jenkins.setQuietPeriod(0);
jenkins.getInstance().rebuildDependencyGraph();
jenkins.buildAndAssertSuccess(firstProject);
jenkins.waitUntilNoActivity();

assertNotNull(firstProject.getLastBuild());
assertNull(secondProject.getLastBuild());
assertEquals("1.0.0.1", firstProject.getLastBuild().getDisplayName());

secondProject.getBuildersList().clear();
secondProject.getBuildersList().add(new AssertPipelineVersion("1.0.0.1"));

BuildPipelineView view = new BuildPipelineView("", "", new DownstreamProjectGridBuilder("firstProject"), "1", false, null);
view.triggerManualBuild(1, "secondProject", "firstProject");
jenkins.waitUntilNoActivity();

assertNotNull(secondProject.getLastBuild());
assertEquals("true", secondProject.getLastBuild().getBuildVariableResolver().resolve("test"));
}


private class AssertNoPipelineVersion extends TestBuilder {
public boolean perform(AbstractBuild<?, ?> build, Launcher launcher,
BuildListener listener) throws InterruptedException, IOException {
Expand Down

0 comments on commit 124d4aa

Please sign in to comment.