Merge "multijob: added kill-phase-on option"

This commit is contained in:
Jenkins 2014-07-10 16:18:07 +00:00 committed by Gerrit Code Review
commit 7204ec3130
3 changed files with 21 additions and 1 deletions
jenkins_jobs/modules
tests/builders/fixtures

@ -901,10 +901,13 @@ def multijob(parser, xml_parent, data):
to the other job (optional)
* **predefined-parameters** (`str`) -- Pass predefined
parameters to the other job (optional)
* **kill-phase-on** (`str`) -- Stop the phase execution
on specific job status. Can be 'FAILURE', 'UNSTABLE',
'NEVER'. (optional)
Example:
.. literalinclude:: ../../tests/builders/fixtures/multibuild.yaml
.. literalinclude:: /../../tests/builders/fixtures/multibuild.yaml
:language: yaml
"""
builder = XML.SubElement(xml_parent, 'com.tikal.jenkins.plugins.multijob.'
@ -916,6 +919,8 @@ def multijob(parser, xml_parent, data):
phaseJobs = XML.SubElement(builder, 'phaseJobs')
kill_status_list = ('FAILURE', 'UNSTABLE', 'NEVER')
for project in data.get('projects', []):
phaseJob = XML.SubElement(phaseJobs, 'com.tikal.jenkins.plugins.'
'multijob.PhaseJobsConfig')
@ -968,6 +973,19 @@ def multijob(parser, xml_parent, data):
properties = XML.SubElement(param, 'properties')
properties.text = predefined_parameters
# Kill phase on job status
kill_status = project.get('kill-phase-on')
if kill_status is not None:
kill_status = kill_status.upper()
if kill_status not in kill_status_list:
raise JenkinsJobsException(
'multijob kill-phase-on must be one of: %s'
+ ','.join(kill_status_list))
XML.SubElement(
phaseJob,
'killPhaseOnJobResultCondition'
).text = kill_status
def grails(parser, xml_parent, data):
"""yaml: grails

@ -47,6 +47,7 @@
<jobName>PhaseTwoJobB</jobName>
<currParams>false</currParams>
<configs/>
<killPhaseOnJobResultCondition>UNSTABLE</killPhaseOnJobResultCondition>
</com.tikal.jenkins.plugins.multijob.PhaseJobsConfig>
</phaseJobs>
</com.tikal.jenkins.plugins.multijob.MultiJobBuilder>

@ -20,3 +20,4 @@ builders:
predefined-parameters: foo=bar
- name: PhaseTwoJobB
current-parameters: false
kill-phase-on: UNSTABLE