summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Glayre <nicolas.glayre@nespresso.com>2015-12-15 16:12:09 +0100
committerNicolas Glayre <nicolas.glayre@nespresso.com>2015-12-15 17:14:18 +0100
commit191964610914d964779fcf9609f131ab394e9315 (patch)
treea619e6a7764bb389c52948e2dc780e54aaf05746
parent959eb4b909beebfce04e8149e459293f5ec32e21 (diff)
downloadpython-jenkins-job-builder-191964610914d964779fcf9609f131ab394e9315.tar.gz
python-jenkins-job-builder-191964610914d964779fcf9609f131ab394e9315.tar.xz
python-jenkins-job-builder-191964610914d964779fcf9609f131ab394e9315.zip
Adding a new project parameter on multijob
Multijob builder is missing the "Abort all other job" parameter configuration This PR adds its management setup Change-Id: I5efe677ba644e5e9b104248d44b669b1d4a75f10
-rw-r--r--jenkins_jobs/modules/builders.py6
-rw-r--r--tests/builders/fixtures/multibuild.xml4
-rw-r--r--tests/builders/fixtures/multibuild.yaml1
3 files changed, 11 insertions, 0 deletions
diff --git a/jenkins_jobs/modules/builders.py b/jenkins_jobs/modules/builders.py
index 8efd3840..47081311 100644
--- a/jenkins_jobs/modules/builders.py
+++ b/jenkins_jobs/modules/builders.py
@@ -1531,6 +1531,8 @@ def multijob(parser, xml_parent, data):
to the other job (optional)
* **predefined-parameters** (`str`) -- Pass predefined
parameters to the other job (optional)
+ * **abort-all-job** (`bool`) -- Kill allsubs job and the phase job,
+ if this subjob is killed (default false)
* **enable-condition** (`str`) -- Condition to run the
job in groovy script format (optional)
* **kill-phase-on** (`str`) -- Stop the phase execution
@@ -1609,6 +1611,10 @@ def multijob(parser, xml_parent, data):
properties = XML.SubElement(param, 'properties')
properties.text = predefined_parameters
+ # Abort all other job
+ abortAllJob = str(project.get('abort-all-job', False)).lower()
+ XML.SubElement(phaseJob, 'abortAllJob').text = abortAllJob
+
# Enable Condition
enable_condition = project.get('enable-condition')
if enable_condition is not None:
diff --git a/tests/builders/fixtures/multibuild.xml b/tests/builders/fixtures/multibuild.xml
index 36b7d908..7327ba21 100644
--- a/tests/builders/fixtures/multibuild.xml
+++ b/tests/builders/fixtures/multibuild.xml
@@ -17,6 +17,7 @@
<combineQueuedCommits>false</combineQueuedCommits>
</hudson.plugins.git.GitRevisionBuildParameters>
</configs>
+ <abortAllJob>true</abortAllJob>
</com.tikal.jenkins.plugins.multijob.PhaseJobsConfig>
<com.tikal.jenkins.plugins.multijob.PhaseJobsConfig>
<jobName>PhaseOneJobB</jobName>
@@ -27,6 +28,7 @@
<failTriggerOnMissing>true</failTriggerOnMissing>
</hudson.plugins.parameterizedtrigger.FileBuildParameters>
</configs>
+ <abortAllJob>false</abortAllJob>
</com.tikal.jenkins.plugins.multijob.PhaseJobsConfig>
</phaseJobs>
</com.tikal.jenkins.plugins.multijob.MultiJobBuilder>
@@ -42,11 +44,13 @@
<properties>foo=bar</properties>
</hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
</configs>
+ <abortAllJob>false</abortAllJob>
</com.tikal.jenkins.plugins.multijob.PhaseJobsConfig>
<com.tikal.jenkins.plugins.multijob.PhaseJobsConfig>
<jobName>PhaseTwoJobB</jobName>
<currParams>false</currParams>
<configs/>
+ <abortAllJob>false</abortAllJob>
<enableCondition>true</enableCondition>
<condition>${BUILDNUMBER} % 2 == 1</condition>
<killPhaseOnJobResultCondition>UNSTABLE</killPhaseOnJobResultCondition>
diff --git a/tests/builders/fixtures/multibuild.yaml b/tests/builders/fixtures/multibuild.yaml
index 13d400de..18529d35 100644
--- a/tests/builders/fixtures/multibuild.yaml
+++ b/tests/builders/fixtures/multibuild.yaml
@@ -8,6 +8,7 @@ builders:
node-label-name: "vm_name"
node-label: "agent-${BUILD_NUMBER}"
git-revision: true
+ abort-all-job: true
- name: PhaseOneJobB
current-parameters: true
property-file: build.props