summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtem Nikitin <anikitin@networkoptix.com>2019-11-12 13:06:54 +0300
committerArtem Nikitin <anikitin@networkoptix.com>2019-11-13 09:08:38 +0300
commitfa688582a62d702b2a63e302dec28d10762da4cd (patch)
tree616b5bb8c827ec6feee5ddedca8553ee6f94414c
parent8c29f8931c3412ce1a4c5b772cf8aaf13690684f (diff)
downloadpython-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.py9
-rw-r--r--tests/builders/fixtures/multibuild.xml25
-rw-r--r--tests/builders/fixtures/multibuild.yaml7
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