diff --git a/jenkins_jobs/modules/publishers.py b/jenkins_jobs/modules/publishers.py index 82a9cbee1..00645b593 100644 --- a/jenkins_jobs/modules/publishers.py +++ b/jenkins_jobs/modules/publishers.py @@ -507,6 +507,8 @@ def trigger_parameterized_builds(registry, xml_parent, data): if any of the property files are not found in the workspace. Only valid when 'property-file' is specified. (default 'False') + :arg bool trigger-from-child-projects: Trigger build from child projects. + Used for matrix projects. (default 'False') :arg bool use-matrix-child-files: Use files in workspaces of child builds (default 'False') :arg str matrix-child-combination-filter: A Groovy expression to filter @@ -560,6 +562,10 @@ def trigger_parameterized_builds(registry, xml_parent, data): condition = XML.SubElement(tconfig, 'condition') condition.text = project_def.get('condition', 'ALWAYS') + trigger_from_child_projects = XML.SubElement( + tconfig, 'triggerFromChildProjects') + trigger_from_child_projects.text = str( + project_def.get('trigger-from-child-projects', False)).lower() trigger_with_no_params = XML.SubElement(tconfig, 'triggerWithNoParameters') trigger_with_no_params.text = str( diff --git a/tests/publishers/fixtures/join-trigger001.xml b/tests/publishers/fixtures/join-trigger001.xml index 511eb6b3b..657372847 100644 --- a/tests/publishers/fixtures/join-trigger001.xml +++ b/tests/publishers/fixtures/join-trigger001.xml @@ -12,6 +12,7 @@ archive ALWAYS + true true @@ -20,6 +21,7 @@ cleanup ALWAYS + false false diff --git a/tests/publishers/fixtures/join-trigger001.yaml b/tests/publishers/fixtures/join-trigger001.yaml index 47d96a3c0..7f59147ca 100644 --- a/tests/publishers/fixtures/join-trigger001.yaml +++ b/tests/publishers/fixtures/join-trigger001.yaml @@ -8,6 +8,7 @@ publishers: - trigger-parameterized-builds: - project: archive current-parameters: true + trigger-from-child-projects: true trigger-with-no-params: true - project: cleanup current-parameters: true diff --git a/tests/publishers/fixtures/trigger-parameterized-builds001.xml b/tests/publishers/fixtures/trigger-parameterized-builds001.xml index ec3bc08f0..8d15a232d 100644 --- a/tests/publishers/fixtures/trigger-parameterized-builds001.xml +++ b/tests/publishers/fixtures/trigger-parameterized-builds001.xml @@ -7,6 +7,7 @@ fixture SUCCESS + false false diff --git a/tests/publishers/fixtures/trigger-parameterized-builds002.xml b/tests/publishers/fixtures/trigger-parameterized-builds002.xml index 6e664f3c6..2a546093c 100644 --- a/tests/publishers/fixtures/trigger-parameterized-builds002.xml +++ b/tests/publishers/fixtures/trigger-parameterized-builds002.xml @@ -11,6 +11,7 @@ fixture SUCCESS + false false diff --git a/tests/publishers/fixtures/trigger_parameterized_builds/parameter-override-ordering.xml b/tests/publishers/fixtures/trigger_parameterized_builds/parameter-override-ordering.xml index 9150e0ab7..291422ae1 100644 --- a/tests/publishers/fixtures/trigger_parameterized_builds/parameter-override-ordering.xml +++ b/tests/publishers/fixtures/trigger_parameterized_builds/parameter-override-ordering.xml @@ -16,6 +16,7 @@ another_job ALWAYS + false false @@ -31,6 +32,7 @@ yet_another_job ALWAYS + false false diff --git a/tests/publishers/fixtures/trigger_parameterized_builds001.xml b/tests/publishers/fixtures/trigger_parameterized_builds001.xml index 9802dbab3..6710ecbec 100644 --- a/tests/publishers/fixtures/trigger_parameterized_builds001.xml +++ b/tests/publishers/fixtures/trigger_parameterized_builds001.xml @@ -13,6 +13,7 @@ bar=foo other_job,foo,bar ALWAYS + false false @@ -30,6 +31,7 @@ bar=foo other_job1, other_job2 ALWAYS + false false @@ -46,6 +48,7 @@ bar=foo yet_another_job ALWAYS + false false @@ -57,6 +60,7 @@ bar=foo yet_another_job_2 ALWAYS + false false @@ -68,6 +72,7 @@ bar=foo yet_another_job_3 ALWAYS + false false @@ -77,6 +82,7 @@ bar=foo test-project-same-node ALWAYS + false false diff --git a/tests/publishers/fixtures/trigger_parameterized_builds002.xml b/tests/publishers/fixtures/trigger_parameterized_builds002.xml index 9034db6fd..d258afc9c 100644 --- a/tests/publishers/fixtures/trigger_parameterized_builds002.xml +++ b/tests/publishers/fixtures/trigger_parameterized_builds002.xml @@ -12,6 +12,7 @@ test-project-all ALWAYS + false false @@ -23,6 +24,7 @@ test-project-just-name ALWAYS + false false @@ -34,6 +36,7 @@ test-project-just-node ALWAYS + false false diff --git a/tests/publishers/fixtures/trigger_parameterized_builds003.xml b/tests/publishers/fixtures/trigger_parameterized_builds003.xml index e4dc9205d..2de23e432 100644 --- a/tests/publishers/fixtures/trigger_parameterized_builds003.xml +++ b/tests/publishers/fixtures/trigger_parameterized_builds003.xml @@ -31,6 +31,7 @@ other_job,foo,bar ALWAYS + false false diff --git a/tests/publishers/fixtures/trigger_parameterized_builds004.xml b/tests/publishers/fixtures/trigger_parameterized_builds004.xml index ae2419236..a37dc708e 100644 --- a/tests/publishers/fixtures/trigger_parameterized_builds004.xml +++ b/tests/publishers/fixtures/trigger_parameterized_builds004.xml @@ -15,6 +15,7 @@ other_job ALWAYS + false false diff --git a/tests/publishers/fixtures/trigger_parameterized_builds005.xml b/tests/publishers/fixtures/trigger_parameterized_builds005.xml index 27c113c02..e556d98ef 100644 --- a/tests/publishers/fixtures/trigger_parameterized_builds005.xml +++ b/tests/publishers/fixtures/trigger_parameterized_builds005.xml @@ -15,6 +15,7 @@ other_job ALWAYS + false false diff --git a/tests/yamlparser/fixtures/second_order_parameter_interpolation002.xml b/tests/yamlparser/fixtures/second_order_parameter_interpolation002.xml index bdab430fe..8323411e1 100644 --- a/tests/yamlparser/fixtures/second_order_parameter_interpolation002.xml +++ b/tests/yamlparser/fixtures/second_order_parameter_interpolation002.xml @@ -22,6 +22,7 @@ ALWAYS + false false @@ -54,6 +55,7 @@ experimental_p2_bar ALWAYS + false false @@ -86,6 +88,7 @@ production_p1_foo ALWAYS + false false @@ -118,6 +121,7 @@ ALWAYS + false false diff --git a/tests/yamlparser/fixtures/trigger_parameterized_builds/parameter-override-ordering-001.xml b/tests/yamlparser/fixtures/trigger_parameterized_builds/parameter-override-ordering-001.xml index eb59f2f0b..03996fee8 100644 --- a/tests/yamlparser/fixtures/trigger_parameterized_builds/parameter-override-ordering-001.xml +++ b/tests/yamlparser/fixtures/trigger_parameterized_builds/parameter-override-ordering-001.xml @@ -33,6 +33,7 @@ print("Doing something cool with python") default_job ALWAYS + false false @@ -52,6 +53,7 @@ print("Doing something cool with python") first_job ALWAYS + false false @@ -67,6 +69,7 @@ print("Doing something cool with python") second_job ALWAYS + false false @@ -110,6 +113,7 @@ print("Doing something cool with python") default_job ALWAYS + false false @@ -129,6 +133,7 @@ print("Doing something cool with python") 1.2_first_job ALWAYS + false false @@ -144,6 +149,7 @@ print("Doing something cool with python") 1.2_second_job ALWAYS + false false diff --git a/tests/yamlparser/fixtures/trigger_parameterized_builds/parameter-override-ordering-002.xml b/tests/yamlparser/fixtures/trigger_parameterized_builds/parameter-override-ordering-002.xml index a6f5c4443..95f46d171 100644 --- a/tests/yamlparser/fixtures/trigger_parameterized_builds/parameter-override-ordering-002.xml +++ b/tests/yamlparser/fixtures/trigger_parameterized_builds/parameter-override-ordering-002.xml @@ -30,6 +30,7 @@ UNSTABLE_OR_BETTER + false false @@ -70,6 +71,7 @@ UNSTABLE_OR_BETTER + false false diff --git a/tests/yamlparser/fixtures/trigger_parameterized_builds/parameter-override-ordering-003.xml b/tests/yamlparser/fixtures/trigger_parameterized_builds/parameter-override-ordering-003.xml new file mode 100644 index 000000000..f2bf89fa3 --- /dev/null +++ b/tests/yamlparser/fixtures/trigger_parameterized_builds/parameter-override-ordering-003.xml @@ -0,0 +1,83 @@ + + + + false + + + + + foo_bar + + foo + bar + + + + + <!-- Managed by Jenkins Job Builder --> + false + JJB Test1 + false + false + false + true + + + + + + + + + foo + ALWAYS + true + false + + + + + + + + + + + false + + + + + foo_bar + + foo + bar + + + + + <!-- Managed by Jenkins Job Builder --> + false + JJB Test2 + false + false + false + true + + + + + + + + + foo + ALWAYS + false + false + + + + + + diff --git a/tests/yamlparser/fixtures/trigger_parameterized_builds/parameter-override-ordering-003.yaml b/tests/yamlparser/fixtures/trigger_parameterized_builds/parameter-override-ordering-003.yaml new file mode 100644 index 000000000..d50d25a68 --- /dev/null +++ b/tests/yamlparser/fixtures/trigger_parameterized_builds/parameter-override-ordering-003.yaml @@ -0,0 +1,36 @@ +- project: + name: trigger-from-child + jobs: + - 'hydra_{name}_jjb-test1' + - 'hydra_{name}_jjb-test2' + +- job-template: + project-type: matrix + axes: + - axis: + type: user-defined + name: foo_bar + values: + - foo + - bar + name: 'hydra_{name}_jjb-test1' + display-name: 'JJB Test1' + publishers: + - trigger-parameterized-builds: + - project: 'foo' + trigger-from-child-projects: true + +- job-template: + project-type: matrix + axes: + - axis: + type: user-defined + name: foo_bar + values: + - foo + - bar + name: 'hydra_{name}_jjb-test2' + display-name: 'JJB Test2' + publishers: + - trigger-parameterized-builds: + - project: 'foo'