diff options
author | Tomas Turek <tturek@redhat.com> | 2016-06-17 14:07:49 +0200 |
---|---|---|
committer | Tomas Turek <tturek@redhat.com> | 2016-06-17 14:49:52 +0200 |
commit | 453219c72ffd9bfa4781ba268a8b57b206f9b0d8 (patch) | |
tree | 1baaca791f83ae0dbc8a7d0a61e0527f6e770261 | |
parent | fda76531d96f604772baf81a872405aced937016 (diff) | |
download | python-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.py | 9 | ||||
-rw-r--r-- | tests/builders/fixtures/trigger-builds008.xml | 20 | ||||
-rw-r--r-- | tests/builders/fixtures/trigger-builds008.yaml | 4 |
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=="x86"</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" |