-
Bug
-
Resolution: Fixed
-
Major
-
None
-
Ubuntu (2.6.32-24-server)
Hudson 1.377
Join 1.9
After upgrading the Join plugin to 1.9, it does not work if one of the downstream tasks is a matrix job. This is true for the basic join functionality, as well as the 'Run post-build actions at join -> Trigger parameterized build on other projects' functionality. Downgrading the plugin to 1.8 fixes this problem (of course, 'Run post-build actions at join' is broken with 1.8).
Here's a simplified repro, where the 'downstream tasks' consists of a single matrix job:
- Create Job_A (free-style). Make it call Job_B with 'trigger parametrized build', and set up some dummy pre-defined parameters to send to Job_B. Also make it call Job_C as the 'join' job, in the 'Projects to build once, after all downstream projects have finished' field
- Create Job_B (matrix), give it some axis and values
- Create Job_C (free-style)
With that configuration, if I run Job_A, Job_B will run, but Job_C will not run. I have tested this with a mix of freestyle and matrix downstream jobs, with the same results - all the downstream jobs run, but the 'join job' does not run. I see the same behavior if I put Job_C into the Run post-build actions at join -> Trigger parameterized build on other projects' field instead of the 'Projects to build once, after all downstream projects have finished' field.
If I downgrade the Join plugin to 1.8, this test works.
- depends on
-
JENKINS-6274 use dependencygraph for downstream job scheduling
-
- Resolved
-
I understand why it doesn't work. As a workaround, just add for example an empty (=no projects to trigger) parameterized trigger to the matrix build. As a consequence the join trigger will be triggered.
I will further investigate the problem to find a solution. The problem is that the matrix build does not trigger downstream builds via the dependency graph, whereas the freestyle-build does. But the parameterized trigger and the regular build trigger add an aggregator to the matrix build which triggers the dependencies. If no trigger is added, then no dependency gets triggered.