summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Turek <tturek@redhat.com>2016-06-17 14:07:49 +0200
committerTomas Turek <tturek@redhat.com>2016-06-17 14:49:52 +0200
commit453219c72ffd9bfa4781ba268a8b57b206f9b0d8 (patch)
tree1baaca791f83ae0dbc8a7d0a61e0527f6e770261
parentfda76531d96f604772baf81a872405aced937016 (diff)
downloadpython-jenkins-job-builder-453219c72ffd9bfa4781ba268a8b57b206f9b0d8.tar.gz
python-jenkins-job-builder-453219c72ffd9bfa4781ba268a8b57b206f9b0d8.tar.xz
python-jenkins-job-builder-453219c72ffd9bfa4781ba268a8b57b206f9b0d8.zip
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 <tturek@redhat.com>
-rw-r--r--jenkins_jobs/modules/builders.py9
-rw-r--r--tests/builders/fixtures/trigger-builds008.xml20
-rw-r--r--tests/builders/fixtures/trigger-builds008.yaml4
3 files changed, 33 insertions, 0 deletions
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 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <builders>
+ <hudson.plugins.parameterizedtrigger.TriggerBuilder>
+ <configs>
+ <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
+ <configs>
+ <hudson.plugins.parameterizedtrigger.matrix.MatrixSubsetBuildParameters>
+ <filter>label==&quot;x86&quot;</filter>
+ </hudson.plugins.parameterizedtrigger.matrix.MatrixSubsetBuildParameters>
+ </configs>
+ <projects>build_started</projects>
+ <condition>ALWAYS</condition>
+ <triggerWithNoParameters>false</triggerWithNoParameters>
+ <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
+ </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
+ </configs>
+ </hudson.plugins.parameterizedtrigger.TriggerBuilder>
+ </builders>
+</project>
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"