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



在Jenkins中,如果一个构建当前正在运行,而下一个处于挂起状态,那么我应该怎么做才能使运行中的一个中止,下一个挂起的一个开始运行,等等

我必须为几个项目做这件事,每个项目中都有几个作业,我试图将build_number作为env变量保存在一个文本文件(build_number.txt)中,并用这个数字中止之前触发的构建,但为每个作业创建build_numbertxt文件看起来效率不高,然后我必须为每个项目的每个作业创建许多build_number文件。

有人能给我推荐一些更好的方法吗

感谢

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

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

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

Jenkins API在这里可用

最新更新