diff options
author | Nicolas Glayre <nicolas.glayre@nespresso.com> | 2015-12-15 16:12:09 +0100 |
---|---|---|
committer | Nicolas Glayre <nicolas.glayre@nespresso.com> | 2015-12-15 17:14:18 +0100 |
commit | 191964610914d964779fcf9609f131ab394e9315 (patch) | |
tree | a619e6a7764bb389c52948e2dc780e54aaf05746 | |
parent | 959eb4b909beebfce04e8149e459293f5ec32e21 (diff) | |
download | python-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.py | 6 | ||||
-rw-r--r-- | tests/builders/fixtures/multibuild.xml | 4 | ||||
-rw-r--r-- | tests/builders/fixtures/multibuild.yaml | 1 |
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 |