在Jenkins中,如果下一个触发器构建处于挂起状态,那么如何中止正在运行的构建并开始运行下一个待处理构建?

时间:2013-08-23 21:34:00

标签: jenkins jenkins-plugins

在Jenkins中,如果一个构建当前正在运行而下一个构建处于暂挂状态,那么我该怎么做才能运行一个构建应该中止而下一个构建应该开始运行,依此类推。

我必须为少数几个项目执行此操作,并且每个项目中都有很少的工作,我尝试将build_number保存为一个文本文件(build_number.txt)中的env变量,然后使用该数字中止先前触发的构建但生成build_number。每个作业的txt文件效率都不高,然后我必须为每个项目的每个作业创建许多build_number文件。

任何人都可以建议我一些更好的方法

由于

1 个答案:

答案 0 :(得分:0)

根据评论,如果发送太多电子邮件是实际问题,您可以使用轮询SCM在15分钟左右轮询一次,甚至指定作业的安静时间。这将确保在15分钟内完成一次构建。用户在提交之前应进行本地测试。但是如果Jenkins本身用于验证提交,那么如果构建失败,我发送电子邮件时看不到任何错误。毕竟,他们应该知道,即使他们有意或无意地在以后的更新中修复它。

但是如果有更新,如果您仍想中止正在运行的作业,可以尝试以下操作。让我们将作业中止为JOB A

  1. 创建另一个侦听与需要中止的作业相同的更新的作业
  2. 添加构建步骤以执行groovy脚本
  3. 在groovy脚本中使用Jenkins API检查JOB A是否正在运行。如果是,请再次使用API​​中止该作业。
  4. Jenkins API可用here