diff options
author | Artem Nikitin <anikitin@networkoptix.com> | 2019-11-12 13:06:54 +0300 |
---|---|---|
committer | Artem Nikitin <anikitin@networkoptix.com> | 2019-11-13 09:08:38 +0300 |
commit | fa688582a62d702b2a63e302dec28d10762da4cd (patch) | |
tree | 616b5bb8c827ec6feee5ddedca8553ee6f94414c | |
parent | 8c29f8931c3412ce1a4c5b772cf8aaf13690684f (diff) | |
download | python-jenkins-job-builder-fa688582a62d702b2a63e302dec28d10762da4cd.tar.gz python-jenkins-job-builder-fa688582a62d702b2a63e302dec28d10762da4cd.tar.xz python-jenkins-job-builder-fa688582a62d702b2a63e302dec28d10762da4cd.zip |
Add alias to multijob builder
It's helpful to have possibility to set `jobAlias` in case the
same job is used multiple times with different configurations.
Change-Id: Ic092c6b2f5d893e75ebce4aaebc7eaf88a8978a6
-rw-r--r-- | jenkins_jobs/modules/builders.py | 9 | ||||
-rw-r--r-- | tests/builders/fixtures/multibuild.xml | 25 | ||||
-rw-r--r-- | tests/builders/fixtures/multibuild.yaml | 7 |
3 files changed, 41 insertions, 0 deletions
diff --git a/jenkins_jobs/modules/builders.py b/jenkins_jobs/modules/builders.py index ab70023e..52c5155f 100644 --- a/jenkins_jobs/modules/builders.py +++ b/jenkins_jobs/modules/builders.py @@ -1958,6 +1958,9 @@ def multijob(registry, xml_parent, data): :Project: * **name** (`str`) -- Project name + * **alias** (`str`) -- Project alias, which will be shown + in MultiJob Overview. Helpful when working with the same + project multiple times with different configurations * **current-parameters** (`bool`) -- Pass current build parameters to the other job (default false) * **node-label-name** (`str`) -- Define a list of nodes @@ -2025,6 +2028,12 @@ def multijob(registry, xml_parent, data): ] helpers.convert_mapping_to_xml(phaseJob, project, mapping, fail_required=True) # Pass through other params + if project.get("alias"): + mapping = [("alias", "jobAlias", None)] + helpers.convert_mapping_to_xml( + phaseJob, project, mapping, fail_required=True + ) + configs = XML.SubElement(phaseJob, "configs") nodeLabelName = project.get("node-label-name") diff --git a/tests/builders/fixtures/multibuild.xml b/tests/builders/fixtures/multibuild.xml index 907a35f7..a0f7b589 100644 --- a/tests/builders/fixtures/multibuild.xml +++ b/tests/builders/fixtures/multibuild.xml @@ -105,5 +105,30 @@ </com.tikal.jenkins.plugins.multijob.PhaseJobsConfig> </phaseJobs> </com.tikal.jenkins.plugins.multijob.MultiJobBuilder> + <com.tikal.jenkins.plugins.multijob.MultiJobBuilder> + <phaseName>PhaseFive</phaseName> + <continuationCondition>SUCCESSFUL</continuationCondition> + <executionType>PARALLEL</executionType> + <phaseJobs> + <com.tikal.jenkins.plugins.multijob.PhaseJobsConfig> + <jobName>PhaseFiveJobA</jobName> + <currParams>false</currParams> + <jobAlias>PhaseFiveJobRunA</jobAlias> + <configs/> + <abortAllJob>false</abortAllJob> + <aggregatedTestResults>false</aggregatedTestResults> + <enableRetryStrategy>false</enableRetryStrategy> + </com.tikal.jenkins.plugins.multijob.PhaseJobsConfig> + <com.tikal.jenkins.plugins.multijob.PhaseJobsConfig> + <jobName>PhaseFiveJobA</jobName> + <currParams>false</currParams> + <jobAlias>PhaseFiveJobRunB</jobAlias> + <configs/> + <abortAllJob>false</abortAllJob> + <aggregatedTestResults>false</aggregatedTestResults> + <enableRetryStrategy>false</enableRetryStrategy> + </com.tikal.jenkins.plugins.multijob.PhaseJobsConfig> + </phaseJobs> + </com.tikal.jenkins.plugins.multijob.MultiJobBuilder> </builders> </project> diff --git a/tests/builders/fixtures/multibuild.yaml b/tests/builders/fixtures/multibuild.yaml index 3fcdf111..0f7c6586 100644 --- a/tests/builders/fixtures/multibuild.yaml +++ b/tests/builders/fixtures/multibuild.yaml @@ -43,3 +43,10 @@ builders: retry: max-retry: 3 strategy-path: "/PhaseFour/PhaseFourRetry.prop" + - multijob: + name: PhaseFive + projects: + - name: PhaseFiveJobA + alias: PhaseFiveJobRunA + - name: PhaseFiveJobA + alias: PhaseFiveJobRunB |