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'