Jenkins Scenario details:
======================
- Number of build executors(either on master/slave) in Jenkins: 3
- UpStream job: USJob and this job can run on any build executor
- DownStream job: DSJob & this job has a quiet period of 120 seconds + it's tied to run on a particular build executor only.
- USJob has this in the build step : echo "Happy Birthday James" and it takes 5 seconds to complete this job
- DSJob has this in the build step : echo "James bond is dead"
and it takes 5 seconds to complete this job
Now, let say we run USJob (parent/UpStream job) 5 times, which will ---> call DSJob(child/DownStream job) 5 times as well, then, what I want is:
- Jenkins should run USJob 5 times, thus call DSJob child job during each call.
Instead of running DSJob (as soon as it's called from USJob), DSJob will sit idle or in queue for "120 seconds" (i.e. it's set for quiet period).
Now, if we see this scenario, UPJob will call DSJob 5 times and DSJob will sit in queue for until that quite period is met. Thus, once the quiet period is over, Jenkins will start DSJob.
My question: What I'm trying to see is what setting/option can I set in DSJob(child job) so that DSJob runs only once and dont care how many time it was called. In other words: If James Bond/someone is dead once, he can't die again! ......got it! but someone can wish him Happy Birthday N # of times on his BDay.
-- THIS concept is similar to running a continuous integration (CI) build in accumulate fashion in TFS (Team Foundation Server - inside Build Definition's TRIGGER section) i.e. run the build as soon as there's a change in source control BUT accumulate all the changes to source control until the running CI build is in progress and once that's complete, the next CI build will pick all other source control changes done by developers.