詹金斯:杀死下游工作然后重新启动

时间:2014-02-28 15:01:40

标签: jenkins continuous-integration

所以我有一个Jenkins Job,在代码被推送到该环境之后启动其他工作以在特定环境中运行测试脚本(例如:代码被推送到QA,构建测试项目,然后运行所有QA测试使用“10个单独的”测试工作)。

这在大多数情况下都很有效,但是,有时我会“运行太多测试”,因为人们会对特定环境执行大量构建,这意味着我有相同测试的多个版本在运行。 / p>

我想这样做,当一个作业运行并完成时,如果它的下游作业当前正在运行,它们会被停止然后再次启动(我希望测试在最新版本上运行而不是2测试作业在2个不同的版本上运行。)

有谁知道这样做的好方法?或者是否有人可以推荐的插件?

1 个答案:

答案 0 :(得分:1)

我建议您添加一个包含HTTP请求的批处理文件,以取消相关作业的最后一次构建,然后在下一步中触发该作业。我认为下面的网址应该有所帮助。

所以在JOB-A的PostBuild步骤中添加一个条件(单步和步骤)来检查JOB-A是否成功接着

执行批处理命令到CANCEL JOB-B

再次启动JOB-B

Thsi应该这样做。 (替换HUDSON_URL)

HUDSON_URL/job/JOBNAME/lastBuild/stop

显然,如果Jenkins需要登录,您可能需要考虑身份验证。

另外我想说可能在JOB-B中你可能想要设置为阻止如果upteam项目正在构建所以它等待上游作业,如果它尚未运行。

another reference here:

希望这会有所帮助。