diff options
author | Igor Belikov <ibelikov@mirantis.com> | 2015-01-27 17:22:00 +0300 |
---|---|---|
committer | Igor Belikov <ibelikov@mirantis.com> | 2015-01-27 17:28:07 +0300 |
commit | cc96136a6e7c4acd6dd08b9a045c07fd7a3fe27c (patch) | |
tree | e2b1f55919bf9cb3e7d7ba5d63141a9983bfec24 | |
parent | 4bf020e07e0dd938732a32eaeb40a67d939cbd94 (diff) | |
download | python-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.py | 14 | ||||
-rw-r--r-- | tests/builders/fixtures/multibuild.xml | 2 | ||||
-rw-r--r-- | tests/builders/fixtures/multibuild.yaml | 1 |
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" |