From 453219c72ffd9bfa4781ba268a8b57b206f9b0d8 Mon Sep 17 00:00:00 2001 From: Tomas Turek Date: Fri, 17 Jun 2016 14:07:49 +0200 Subject: Adds matrix restriction to trigger-builds plugin This commit adds restrict-matrix-project option to the trigger-builds plugin. This option allows you to restrict the subset of the combinations that the triggered job will run. Change-Id: I2df3349e15c37cc9a1cbb7d615ad31bb743cf772 Signed-off-by: Tomas Turek --- jenkins_jobs/modules/builders.py | 9 +++++++++ tests/builders/fixtures/trigger-builds008.xml | 20 ++++++++++++++++++++ tests/builders/fixtures/trigger-builds008.yaml | 4 ++++ 3 files changed, 33 insertions(+) create mode 100644 tests/builders/fixtures/trigger-builds008.xml create mode 100644 tests/builders/fixtures/trigger-builds008.yaml diff --git a/jenkins_jobs/modules/builders.py b/jenkins_jobs/modules/builders.py index c846a6f9..5af5b5af 100644 --- a/jenkins_jobs/modules/builders.py +++ b/jenkins_jobs/modules/builders.py @@ -391,6 +391,8 @@ def trigger_builds(parser, xml_parent, data): :arg str node-label: Label of the nodes where build should be triggered. Used in conjunction with node-label-name. Requires NodeLabel Parameter Plugin (optional) + :arg str restrict-matrix-project: Filter that restricts the subset + of the combinations that the triggered job will run (optional) :arg bool svn-revision: Whether to pass the svn revision to the triggered job (optional) :arg dict git-revision: Passes git revision to the triggered job @@ -545,6 +547,13 @@ def trigger_builds(parser, xml_parent, data): XML.SubElement(node, 'name').text = project_def['node-label-name'] XML.SubElement(node, 'nodeLabel').text = project_def['node-label'] + if 'restrict-matrix-project' in project_def: + params = XML.SubElement(tconfigs, + 'hudson.plugins.parameterizedtrigger.' + 'matrix.MatrixSubsetBuildParameters') + XML.SubElement(params, 'filter').text = project_def[ + 'restrict-matrix-project'] + if(len(list(tconfigs)) == 0): tconfigs.set('class', 'java.util.Collections$EmptyList') diff --git a/tests/builders/fixtures/trigger-builds008.xml b/tests/builders/fixtures/trigger-builds008.xml new file mode 100644 index 00000000..fed3f0b8 --- /dev/null +++ b/tests/builders/fixtures/trigger-builds008.xml @@ -0,0 +1,20 @@ + + + + + + + + + label=="x86" + + + build_started + ALWAYS + false + false + + + + + diff --git a/tests/builders/fixtures/trigger-builds008.yaml b/tests/builders/fixtures/trigger-builds008.yaml new file mode 100644 index 00000000..dde588b7 --- /dev/null +++ b/tests/builders/fixtures/trigger-builds008.yaml @@ -0,0 +1,4 @@ +builders: + - trigger-builds: + - project: "build_started" + restrict-matrix-project: label=="x86" -- cgit