I have downstream job. When this job is triggered by more than one upstream builds it takes developers only from first build.
My setup is jobA->jobB
If jobB with some run number x is triggered by jobA with number y and number y+1, and jobB x fails ext email plugin takes developers from jobA x build for culprits list and developers from joB x+1 build do not receive email about failed downstream job.
This uses the UpstreamCause to determine what triggered the build, this should resolve to the correct upstream instance of jobA if two jobB's are triggered (one for each trigger of jobA). If only one jobB is triggered, then only one jobA will be the upstream cause.
#14345, #14356 - 2 consecutive runs of our jobA - its our build job (build of c++ project)
#9579 - first failed run of our jobB - its test job (runs some tests on build from jobA)
We have little resources and our jobA takes much time (for our resources), so to make more builds (for further testing) I setup
jobA - allow simultaneous builds (on different notes - with throttle concurrent build option enabled), not waiting for downstream job completion
jobB - same settings
While reading your comment I feel that issue can be in triggering jobB by 2 jobAs' runs but by the moment it was ok for us - except of issues with emailing in failure cases. Its ok for me to combine commiters of #14356 and #14357 to send them email to notify some brake tests.
# #14345, #14356 - 2 consecutive runs of our jobA - its our build job (build of c++ project) # #9579 - first failed run of our jobB - its test job (runs some tests on build from jobA)
We have little limited resources and our jobA takes much time (for our resources), so to make more builds (for further testing) I setup * jobA - allow simultaneous builds (on different notes nodes - with throttle concurrent build option enabled), not waiting for downstream job completion * jobB - same settings
While reading your comment I feel that issue can be in triggering jobB by 2 jobAs' runs but by the moment it was ok for us - except of issues with emailing in failure cases. Its ok for me to combine commiters of #14356 and #14357 to send them email to notify some brake tests.
What we have: # #14345, #14356 - 2 consecutive runs of our jobA - its our build job (build of c++ project) # #9579 - first failed run of our jobB - its test job (runs some tests on build from jobA)
We have limited resources and our jobA takes much time (for our resources), so to make more builds (for further testing) I setup * jobA - allow simultaneous builds (on different nodes - with throttle concurrent build option enabled), not waiting for downstream job completion
* jobB - same settings
While reading your comment I feel that issue can be in triggering jobB by 2 jobAs' runs but by the moment it was ok for us - except of issues with emailing in failure cases. Its ok for me to combine commiters of #14356 and #14357 to send them email to notify some brake broke tests.
The issue I think is that I use context.getRun().getCause(Cause.UpstreamCause.class). This will return the first occurrence of the Cause.UpstreamCause instance in the causes list. This is most likely only going to be the first jobA. I may need to switch to Run<?,?>.getCauses and loop over looking for all UpstreamCause instances. I'll play around with it.