Skip to content

Commit

Permalink
Merge pull request #65 from ikedam/feature/JENKINS-22705_FixBadParame…
Browse files Browse the repository at this point in the history
…terName

[JENKINS-22705] Fixed "Use files in matrix child builds" to work
  • Loading branch information
ikedam committed Apr 26, 2014
2 parents 3ac46d0 + 4a85bae commit 6ffdde8
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 10 deletions.
Expand Up @@ -49,20 +49,20 @@ public class FileBuildParameters extends AbstractBuildParameters {

/*properties used for a matrix project*/
private final boolean useMatrixChild;
private final String combinatioFilter;
private final String combinationFilter;
private final boolean onlyExactRuns;

@DataBoundConstructor
public FileBuildParameters(String propertiesFile, String encoding, boolean failTriggerOnMissing, boolean useMatrixBuild, String combinationFilter, boolean onlyExactRuns) {
public FileBuildParameters(String propertiesFile, String encoding, boolean failTriggerOnMissing, boolean useMatrixChild, String combinationFilter, boolean onlyExactRuns) {
this.propertiesFile = propertiesFile;
this.encoding = Util.fixEmptyAndTrim(encoding);
this.failTriggerOnMissing = failTriggerOnMissing;
this.useMatrixChild = useMatrixBuild;
this.useMatrixChild = useMatrixChild;
if (this.useMatrixChild) {
this.combinatioFilter = combinationFilter;
this.combinationFilter = combinationFilter;
this.onlyExactRuns = onlyExactRuns;
} else {
this.combinatioFilter = null;
this.combinationFilter = null;
this.onlyExactRuns = false;
}
}
Expand Down Expand Up @@ -147,14 +147,14 @@ public boolean apply(@Nullable MatrixRun run) {
if (run == null) {
return false;
}
if (StringUtils.isBlank(getCombinatioFilter())) {
if (StringUtils.isBlank(getCombinationFilter())) {
// no combination filter stands for all children.
return true;
}
Combination c = run.getParent().getCombination();
AxisList axes = run.getParent().getParent().getAxes();

return c.evalGroovyExpression(axes, getCombinatioFilter());
return c.evalGroovyExpression(axes, getCombinationFilter());
}
}
);
Expand All @@ -179,8 +179,8 @@ public boolean isUseMatrixChild() {
return useMatrixChild;
}

public String getCombinatioFilter() {
return combinatioFilter;
public String getCombinationFilter() {
return combinationFilter;
}

public boolean isOnlyExactRuns() {
Expand Down
Expand Up @@ -9,7 +9,7 @@
<!-- When rendered via Ajax, configFor is available only when Jenkins >= 1.495 -->
<j:if test="${(configFor == null or configFor == 'publisher') and descriptor.isMatrixProject(it)}">
<!-- Here is displayed only for matrix project-->
<f:optionalBlock field="useMatrixChild" title="${%Use files in matrix child builds}">
<f:optionalBlock field="useMatrixChild" title="${%Use files in matrix child builds}" inline="true">
<f:entry field="combinationFilter" title="Combination Filter">
<f:textbox />
</f:entry>
Expand Down
Expand Up @@ -54,6 +54,7 @@
import hudson.util.FormValidation;

import org.jvnet.hudson.test.CaptureEnvironmentBuilder;
import org.jvnet.hudson.test.Bug;
import org.jvnet.hudson.test.HudsonTestCase;
import org.jvnet.hudson.test.SingleFileSCM;
import org.jvnet.hudson.test.ExtractResourceSCM;
Expand Down Expand Up @@ -708,4 +709,42 @@ public void testMatrixBuildsOnlyExactRuns() throws Exception {
build.delete();
}
}

@Bug(22705)
public void testMatrixBuildsConfiguration() throws Exception {
FreeStyleProject downstream = createFreeStyleProject();

MatrixProject upstream = createMatrixProject();
upstream.setAxes(new AxisList(new TextAxis("axis1", "value1", "value2")));
upstream.getPublishersList().add(new BuildTrigger(
new BuildTriggerConfig(downstream.getFullName(), ResultCondition.SUCCESS, true, Arrays.<AbstractBuildParameters>asList(
new FileBuildParameters("properties.txt", "UTF-8", true, true, "axis1=value1", true)
))
));
upstream.save();

String upstreamName = upstream.getFullName();

WebClient wc = createWebClient();
submit(wc.getPage(upstream, "configure").getFormByName("config"));

upstream = jenkins.getItemByFullName(upstreamName, MatrixProject.class);
assertNotNull(upstream);

BuildTrigger trigger = upstream.getPublishersList().get(BuildTrigger.class);
assertNotNull(trigger);

assertEquals(1, trigger.getConfigs().size());

BuildTriggerConfig config = trigger.getConfigs().get(0);

assertEquals(1, config.getConfigs().size());
FileBuildParameters p = (FileBuildParameters)config.getConfigs().get(0);
assertEquals("properties.txt", p.getPropertiesFile());
assertEquals("UTF-8", p.getEncoding());
assertTrue(p.getFailTriggerOnMissing());
assertTrue(p.isUseMatrixChild());
assertEquals("axis1=value1", p.getCombinationFilter());
assertTrue(p.isOnlyExactRuns());
}
}

0 comments on commit 6ffdde8

Please sign in to comment.