diff --git a/jenkins_jobs/modules/builders.py b/jenkins_jobs/modules/builders.py index ab70023e5..52c5155fb 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 907a35f7d..a0f7b5893 100644 --- a/tests/builders/fixtures/multibuild.xml +++ b/tests/builders/fixtures/multibuild.xml @@ -105,5 +105,30 @@ + + PhaseFive + SUCCESSFUL + PARALLEL + + + PhaseFiveJobA + false + PhaseFiveJobRunA + + false + false + false + + + PhaseFiveJobA + false + PhaseFiveJobRunB + + false + false + false + + + diff --git a/tests/builders/fixtures/multibuild.yaml b/tests/builders/fixtures/multibuild.yaml index 3fcdf1113..0f7c65868 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