summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Belikov <ibelikov@mirantis.com>2015-01-27 17:22:00 +0300
committerIgor Belikov <ibelikov@mirantis.com>2015-01-27 17:28:07 +0300
commitcc96136a6e7c4acd6dd08b9a045c07fd7a3fe27c (patch)
treee2b1f55919bf9cb3e7d7ba5d63141a9983bfec24
parent4bf020e07e0dd938732a32eaeb40a67d939cbd94 (diff)
downloadpython-jenkins-job-builder-cc96136a6e7c4acd6dd08b9a045c07fd7a3fe27c.tar.gz
python-jenkins-job-builder-cc96136a6e7c4acd6dd08b9a045c07fd7a3fe27c.tar.xz
python-jenkins-job-builder-cc96136a6e7c4acd6dd08b9a045c07fd7a3fe27c.zip
Add 'Enable condition' support to MultiJob builder
'Enable condition' is optional condition in groovy script format to run phase job of MultiJob project Change-Id: I1962d7f8dc2a3613e96654ba11e15f79f8193fae
-rw-r--r--jenkins_jobs/modules/builders.py14
-rw-r--r--tests/builders/fixtures/multibuild.xml2
-rw-r--r--tests/builders/fixtures/multibuild.yaml1
3 files changed, 17 insertions, 0 deletions
diff --git a/jenkins_jobs/modules/builders.py b/jenkins_jobs/modules/builders.py
index 3d3deb07..0356d7b9 100644
--- a/jenkins_jobs/modules/builders.py
+++ b/jenkins_jobs/modules/builders.py
@@ -1062,6 +1062,8 @@ def multijob(parser, xml_parent, data):
to the other job (optional)
* **predefined-parameters** (`str`) -- Pass predefined
parameters to the other job (optional)
+ * **enable-condition** (`str`) -- Condition to run the
+ job in groovy script format (optional)
* **kill-phase-on** (`str`) -- Stop the phase execution
on specific job status. Can be 'FAILURE', 'UNSTABLE',
'NEVER'. (optional)
@@ -1134,6 +1136,18 @@ def multijob(parser, xml_parent, data):
properties = XML.SubElement(param, 'properties')
properties.text = predefined_parameters
+ # Enable Condition
+ enable_condition = project.get('enable-condition')
+ if enable_condition is not None:
+ XML.SubElement(
+ phaseJob,
+ 'enableCondition'
+ ).text = 'true'
+ XML.SubElement(
+ phaseJob,
+ 'condition'
+ ).text = enable_condition
+
# Kill phase on job status
kill_status = project.get('kill-phase-on')
if kill_status is not None:
diff --git a/tests/builders/fixtures/multibuild.xml b/tests/builders/fixtures/multibuild.xml
index cc785625..36b7d908 100644
--- a/tests/builders/fixtures/multibuild.xml
+++ b/tests/builders/fixtures/multibuild.xml
@@ -47,6 +47,8 @@
<jobName>PhaseTwoJobB</jobName>
<currParams>false</currParams>
<configs/>
+ <enableCondition>true</enableCondition>
+ <condition>${BUILDNUMBER} % 2 == 1</condition>
<killPhaseOnJobResultCondition>UNSTABLE</killPhaseOnJobResultCondition>
</com.tikal.jenkins.plugins.multijob.PhaseJobsConfig>
</phaseJobs>
diff --git a/tests/builders/fixtures/multibuild.yaml b/tests/builders/fixtures/multibuild.yaml
index 518d9e0c..13d400de 100644
--- a/tests/builders/fixtures/multibuild.yaml
+++ b/tests/builders/fixtures/multibuild.yaml
@@ -21,3 +21,4 @@ builders:
- name: PhaseTwoJobB
current-parameters: false
kill-phase-on: UNSTABLE
+ enable-condition: "${BUILDNUMBER} % 2 == 1"