Jenkins 场景详细信息:
=======================
- Jenkins 中构建执行器的数量(主/从):3
- 上游作业:USJob和此作业可以在任何构建执行器上运行
- DownStream 作业:DSJob和此作业有120秒的安静期+它仅与特定的构建执行器上运行有关。
- USJob 在构建步骤中有这个:echo "Happy Birthday James" ,完成这项工作需要 5 秒
- DSJob 在构建步骤中有这个:回显“詹姆斯邦德已死”
,完成这项工作需要 5 秒
现在,假设我们运行USJob (parent/UpStream job) 5 次,这将 ---> 调用DSJob (child/DownStream job) 5 次,那么,我想要的是:
- Jenkins 应该运行 USJob 5 次,因此在每次调用期间调用 DSJob 子作业。
DSJob 不会运行 DSJob(一旦从 USJob 调用),DSJob 将处于空闲状态或排队等待“120 秒”(即设置为静默期)。
现在,如果我们看到这种情况,UPJob 将调用 DSJob 5 次,并且 DSJob 将在队列中等待,直到满足该相当时期。因此,一旦安静期结束,Jenkins 将启动 DSJob。
我的问题: 我想查看的是我可以在 DSJob(子作业)中设置什么设置/选项,以便 DSJob 只运行一次,而不关心它被调用了多少次。 换句话说:如果詹姆斯邦德/某人死了一次,他就不能再死了!……明白了!但是有人可以在他的生日那天祝他生日快乐 N # 次。
-- 这个概念类似于在 TFS 中以累积方式运行持续集成 (CI) 构建(Team Foundation Server - 在构建定义的 TRIGGER 部分内),即一旦源代码控制发生更改就运行构建,但将所有更改累积到源代码控制,直到正在运行的 CI 构建正在进行,一旦完成,下一个 CI 构建将选择开发人员完成的所有其他源代码控制更改。