My application has several libraries each with their own git repository.
The repos provide material to individual pipelines that build the
libraries.
The build pipelines then feed to a revision packager pipeline that bundles
the libraries into a revision package which then feeds into a deployment
pipeline.
REPO-A -> BUILD-A
REPO-B -> BUILD-B
REPO-C -> BUILD-C
BUILD-A, BUILD-B, BUILD-C -> PACKAGE -> DEPLOY
Let's say BUILD-A and BUILD-B take 20 seconds to complete, but BUILD-C
pipeline takes a few minutes to complete.
What I'm seeing is that when commits come in on multiple repos somewhat
simultaneously, this results in multiple runs of the PACKAGE -> DEPLOY
pipelines. I'm trying to set up a gate that waits for all running builds
to complete before continuing with PACKAGE.
I understand why that's the default behavior if you view each path through
the graph as a unique run. The documentation also indicates that Fan-In
only works if the SCM material for the entry pipelines is the exact same.
So it seems I'm observing the documented behavior.
Is there a way to achieve what I'm trying to do where I can Fan-In from
different SCM material? I'm thinking like a way to override the "Fan-In
Key" where it could use an arbitrary key to drive the Fan-In behavior
instead of the repo URL.
If not, is there an obvious way I'm not seeing to break up my graph such
that I can wait for all BUILD-* to complete with some kind of quiet period
gate before continuing with PACKAGE -> DEPLOY? For example, once any of the
BUILD-* pipelines have run, wait 45 seconds and if nothing else starts,
then run PACKAGE -> DEPLOY.
Maybe the PACKAGE pipeline has to be manual trigger and ignores the BUILD-*
pipelines for scheduling, then the "gate" is really just a script or
something that uses the API to determine whether or not it's time to run?
Looking for any ideas I'm not seeing...
Thanks
--
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].
To view this discussion on the web visit
https://groups.google.com/d/msgid/go-cd/a318b4b4-7e24-445f-9103-16c1e4b46ac4n%40googlegroups.com.