diff --git a/jenkins_jobs/modules/builders.py b/jenkins_jobs/modules/builders.py index a997871f0..9211b63df 100644 --- a/jenkins_jobs/modules/builders.py +++ b/jenkins_jobs/modules/builders.py @@ -298,6 +298,12 @@ def trigger_builds(parser, xml_parent, data): :arg bool current-parameters: Whether to include the parameters passed to the current build to the triggered job. + :arg str node-label-name: Define a name for the NodeLabel parameter to be + set. Used in conjunction with node-label. Requires NodeLabel Parameter + Plugin (optional) + :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 bool svn-revision: Whether to pass the svn revision to the triggered job :arg bool git-revision: Whether to pass the git revision @@ -432,6 +438,15 @@ def trigger_builds(parser, xml_parent, data): XML.SubElement(param, 'value').text = str( bool_param.get('value', False)).lower() + if 'node-label-name' in project_def and 'node-label' in project_def: + node = XML.SubElement(tconfigs, 'org.jvnet.jenkins.plugins.' + 'nodelabelparameter.parameterizedtrigger.' + 'NodeLabelBuildParameter') + XML.SubElement(node, 'name').text = \ + project_def.get('node-label-name') + XML.SubElement(node, 'nodeLabel').text = \ + project_def.get('node-label') + if(len(list(tconfigs)) == 0): tconfigs.set('class', 'java.util.Collections$EmptyList') diff --git a/tests/builders/fixtures/trigger-builds006.xml b/tests/builders/fixtures/trigger-builds006.xml index e8dee7cb6..5102fd67d 100644 --- a/tests/builders/fixtures/trigger-builds006.xml +++ b/tests/builders/fixtures/trigger-builds006.xml @@ -12,6 +12,10 @@ FOO="bar" + + NODE + testnodes + build_started ALWAYS diff --git a/tests/builders/fixtures/trigger-builds006.yaml b/tests/builders/fixtures/trigger-builds006.yaml index ef739ac1a..3798a74ad 100644 --- a/tests/builders/fixtures/trigger-builds006.yaml +++ b/tests/builders/fixtures/trigger-builds006.yaml @@ -4,5 +4,7 @@ builders: predefined-parameters: FOO="bar" current-parameters: true + node-label-name: NODE + node-label: testnodes git-revision: true block: true