詹金斯方案的细节:
======================
- 构建执行人数(无论是在主/从)在詹金斯:
- 上游作业:USJob和这个工作可以在任何构建执行人运行
- 下行工作:DSJob &该作业具有120秒一个静默期+它绑定在特定的bui上运行只有执行者。詹金斯上游 - 下游的工作 - 平静期
- USJob有这样的构建步骤:回声“生日快乐詹姆斯” ,它需要5秒钟就可以完成这项工作
- DSJob有这样的构建步骤:回声“詹姆斯·邦德死了” ,它需要5秒钟就可以完成这项工作
现在,让我们说,我们跑USJob(父母/上游作业)5倍,这将--->调用DSJob(儿童/下行作业)5次为好,那么,我什么想要的是:
- Jenkins应运行USJob 5次,因此在每次调用期间调用DSJob子作业。
DSJob不会运行DSJob(只要它从USJob调用),DSJob就会处于空闲状态或在队列中等待“120秒”(即设置为安静期)。
现在,如果我们看到这种情况,UPJob将调用DSJob 5次,并且DSJob将排队等候,直到达到相当的时间。因此,一旦安静时期结束,詹金斯将开始DSJob。
我的问题: 什么我想看到的是什么样的设置/选项我DSJob(子作业)设置,以便DSJob只运行一次,并不在乎它是多少时调用。 换句话说:如果詹姆斯·邦德/有人死一次,他不能再死! ...... 拿到了吧!但有人可以祝他生日快乐N次在他的BDay。这个概念类似于在TFS(Team Foundation Server - 内部构建定义的TRIGGER部分)中以累积方式运行持续集成(CI)构建,即在源控制发生变化时立即运行构建BUT积累所有对源代码控制的更改,直到正在运行的CI构建完成,下一个CI构建将选择开发人员完成的所有其他源代码管理更改。
我同意,因为这是一种选择,我最终会走这条路。感谢您分享Eldad。我们基本上不想通过在工作区中放置文件来使用,因为我们在任何机器上的任何可用的从机上运行作业,并且不希望在可供所有机器/从机访问的中央NAS上创建文件。另外,如果父子/上游工作完成了X状态,我不希望子/下游工作查找,然后运行它。 – 2013-02-28 16:42:27
只需注意 - 脚本不必保存为外部文件。它也可以写入作业的配置中。Groovy脚本也被支持。 – 2013-03-01 05:49:51