I've got a group of pipelines which are meant to run serially in 3 
sequential steps, with the penultimate step parallelized across many 
pipelines and the ultimate step only running if all of the penultimate 
parallel pipelines go green.  I believe I'm doing everything correctly 
according to the official Fan-in documentation 
<https://docs.gocd.org/current/advanced_usage/fan_in.html> in sharing the 
same SCM material, having the right upstream pipeline material at each 
step, and configuring all pipelines to automatically trigger.  

The problem I'm observing that is that the ultimate pipeline triggers even 
if one pipeline in the parallelized penultimate group fails.  Also, when I 
look deeply into how each build resolves its upstream pipeline 
dependencies, I've found that the builds are resolving a different version 
of upstream pipeline dependencies than I expect.  I consider this a bug, 
but if it is a feature, it's a feature which I must be misunderstanding and 
which the documentation is unclear on.

I am using version 17.7.0 of Go server.

Here are some screenshots which depict the unexpected behavior:



<https://lh3.googleusercontent.com/-CJP3BDEtrdU/WiIK34lZT3I/AAAAAAAAAvQ/kQnaXQUP-5QiU0Noa-QEM5OF_8rwVSGpACLcBGAs/s1600/Screen%2BShot%2B2017-12-02%2Bat%2B10.25.02%2BAM.png>


As you can see in this image, build #12 of S3_Publish was triggered even 
though the upstream dependency of Alert-UI_web #14 failed.  The original 
parent pipeline was #309 of Lerna-CI_web.


However, when we look at the value-stream map from the perspective of 
S3_Publish #12, we get a different picture:


<https://lh3.googleusercontent.com/-rKgBdtJlECE/WiIMcqul8cI/AAAAAAAAAv0/XctPysFtI_YRWKHbirZkd-ShsJJPEhkFACLcBGAs/s1600/Screen%2BShot%2B2017-12-02%2Bat%2B10.23.49%2BAM.png>



In this view, it looks like Alert-UI_web #10, a green build, is the 
upstream dependency of S3_Publish #12.  We also see that Lerna-CI_web #309 
is still considered the original parent pipeline.  So in this view, 
S3_Publish resolved that all its upstream pipelines passed, and therefore 
trigged.


Now let's take a look directly at Alert-UI_web #10:


<https://lh3.googleusercontent.com/-BBjUq8tp8g8/WiINUw4JGOI/AAAAAAAAAv8/Llhn3feXjGMUXu_Pp5yj92fYkWlZKqXMQCLcBGAs/s1600/Screen%2BShot%2B2017-12-02%2Bat%2B10.24.14%2BAM.png>


OK, So Alert-UI_web #10 has a parent of Lerna-CI_web #306.  This is a 
different parent pipeline version than the #309 we see from the different 
views.  This is very unexpected and looks like a bug.


So what do I have here?  Bug, or misunderstood feature?  I expect 
S3_Publish to not trigger if any descendent build from Lerna-CI_web #309 
fails.  Alert-UI_web #14 was descendent from Lerna-CI_web #309 and failed, 
but still S3_Publish triggered.  S3_Published identified the last good 
build of Alert-CI_web (#10) as its upstream, even though though the 
original parent was different.


Can someone help me figure out if this is a bug or a feature that I've 
misconfigured or misunderstood?  Thank you!!




-- 
You received this message because you are subscribed to the Google Groups 
"go-cd" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to