-
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.
Yeah, sorry. You have to add a trigger from JobB directly to JobC, too. JobC will not start to build directly, because it is blocked by its downstream jobs JobB1 and JobB2, so this should work.
About your concern: I see a possibility to add the desired behaviour to the join plugin, something along the lines "Don't trigger join project if this projects' build failed". But this would have nothing to do with the downstream-ext plugin, either.