-
Bug
-
Resolution: Unresolved
-
Major
-
None
Hi,
I'm seeing some strange issues when using the Join and Downstream-ext plugin. I've attached a screenshot of my job setup.
My perforce depot looks something like this:
\\source\root \\source\root\root.cpp \\source\root\folderA source\root\folderA\fileA.cpp \\source\root\folderB source\root\folderB\fileB.cpp
If I modify fileA.cpp and check it in, the build process happens like this:
1) JobA detects the change, builds, finishes and triggers a build of JobB. 2) JobB builds and this in turn triggers its downstream projects: JobB1, JobB2. 3) JobB1 builds because fileA.cpp is modified which is in JobB1's Perforce view (//source/root/folderA). 4) JobB2 doesn't build because no changes are detected. 5) JobC is then triggered.
This is all working as expected, which is great.
This isn't working as expected though...I modify root.cpp and check it in, the build process happens like this:
1) JobA detects the change, builds, finishes and triggers a build of JobB. 2) JobB builds and in turn triggers its downstream projects: JobB1, JobB2. 3) JobB1 doesn't build because root.cpp is outside of JobB1's view (//source/root/folderA) 3) JobB2 doesn't build because root.cpp is outside of JobB2's view (//source/root/folderB) 4) At this point JobC is NOT triggered when I believe it should be! JobC is the Join project specified in JobB.
So it seems that JobC will only be triggered if either JobB1 or JobB2 is triggered. This seems wrong to me and I think it's a bug in either of the plugins.
Has anyone else seen this issue? Is there something wrong with my project setup by any chance?
Regards,
Tom.
Did you try the version from
JENKINS-9903(the fix there is not released yet)? If not, then the downstream-ext plugin is not even supported.If you do use this version, you will probably also experience this behaviour. On finishing jobB, the join action gets all (not disabled) downstream projects of jobB (= [jobB1, jobB2]) and waits for their completion. Since they don't get executed, the join will never be triggered.
I am actually surprised that the join gets triggered in the first example and not in the second one. I would actually expect that it gets triggered either immediately (without waiting for jobB1 or jobB2) in both cases (if the fix of
JENKINS-9903) is applied or not triggering at all (if the fix isn't applied).Feedback from the author of the downstream-ext plugin how to handle this situation would be appreciated.