在Jenkins中,如果一个构建当前正在运行,而下一个处于挂起状态,那么我应该怎么做才能使运行中的一个中止,下一个挂起的一个开始运行,等等
我必须为几个项目做这件事,每个项目中都有几个作业,我试图将build_number作为env变量保存在一个文本文件(build_number.txt)中,并用这个数字中止之前触发的构建,但为每个作业创建build_numbertxt文件看起来效率不高,然后我必须为每个项目的每个作业创建许多build_number文件。
有人能给我推荐一些更好的方法吗
感谢
根据评论,如果发送过多的电子邮件是实际问题,您可以使用轮询SCM在15分钟左右轮询一次,甚至可以为作业指定安静时间。这将确保每15分钟进行一次构建。用户在提交之前应该进行本地测试。但是,如果Jenkins本身用于验证提交,我认为在构建失败时发送电子邮件不会有任何错误。毕竟,他们应该知道这一点,即使他们在以后的更新中有意或无意地修复了它。
但是,如果您仍然想在有更新的情况下中止正在运行的作业,您可以尝试以下操作。让我们将要中止的作业称为作业A
- 创建另一个侦听与需要中止的作业相同的更新的作业
- 添加构建步骤以执行groovy脚本
- 在groovy脚本中,使用Jenkins API来检查JOB A是否正在运行。如果是,请再次使用API中止作业
Jenkins API在这里可用