Thanks for the information. I'd like to make sure I understand you correctly. My 'main' job has a list of downstream jobs (matrix and freestyle) that are triggered with parameters, and then a 'final' job that's called through the join plugin. What you're saying is, in each of the downstream matrix jobs, I should add an empty parametrized trigger entry? So it would look like each matrix job was calling a further downstream job, which had no parameters?
Another question. I rely on the join plugin not firing if one of the downstream jobs fails. Will this workaround convey failure information from the matrix job back up to the join plugin? In other words, if one of the matrix job configurations fails, and that's the only failure, will the join plugin still fire?
The problem is that the matrix build does not trigger downstream builds via the dependency graph, whereas the freestyle-build does.
I think that explains some other behavior I've seen. I may be remembering this wrong, but I think I had a setup as follows:
- Job A (freestyle)
- Job B (freestyle)
- Job D (called through join)
I would expect that Job A would run, then Job B would run, then all the configurations of Job C would run, and then finally Job D would run. However, as far as I remember, Job D gets triggered as soon as Job C finishes the initial work and forks off all the matrix configurations. If I understand you right, this would probably be another manifestation of the same issue?
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.