在 Jenkins 中,构建完成后触发相同的 Jenkins 作业

3

当构建完成后,是否有一种方法可以触发相同的作业?我有一个作业需要一直运行,直到我手动中止它。有什么方法可以实现这个目标吗?


最简单的方法是通过调度程序定期运行它。您需要知道它需要多长时间并相应地进行调整。该作业不会在其上一次运行时与其同时运行,除非您明确设置它,并且它将在队列中等待,直到清除为止。 - KeepCalmAndCarryOn
你可以使用@KeepCalmAndCarryOn提示,结合“不允许并发构建”,而不必担心它运行的时间长短。 - ozma
4个回答

12

最简单的方法是添加一个后置构建步骤来构建同样的项目。在"后置构建操作" - "构建其他项目" - "要构建的项目"中设置为你的项目名称,它将无限循环。


1
这是一个相当疯狂的请求。您确定您想要这样做吗?如果您只想保持最新状态,则可以在SCM系统更改时创建作业-甚至使用文件系统作为SCM。
如果您真的想这样做,那么它是可能的。您不能只告诉它触发自身,但您可以使用REST API。
添加一个shell构建步骤,其中包含以下行:
curl -X POST http://localhost:8080/job/Tester/build

每次运行构建时,都会安排一个新的工作。

原因是我需要连续在一定时间间隔内运行这些构建。然而,这个时间间隔并不总是固定的。另外,我还想知道另一件事情。是否有一种方法可以连续运行相同的构建。例如,构建完成后它将重新开始(构建代码,运行测试),而不是启动新的构建。 - newperson
1
我猜这取决于你在做什么 :) 但是从传统意义上讲,“构建”代码没有改变时重复构建并没有太大的作用。这就是我问的唯一原因。 - Paul Becotte
2
如果构建有关联的单元测试或系统测试,我可以看到这会很有用。单元测试可能正在寻找硬件故障,或者系统测试可能订阅实时数据,在不同的时间更新。 - Erik Olson
1
每当你面对罕见且间歇性的故障时,这是一个好主意。我在项目中使用过它,其中硬件和软件都经常更新,它有助于更快地捕捉到困难的问题。 - Generic Ratzlaugh

0
在作业配置页面的“构建触发器”下有“在其他项目构建之后构建”的选项,您可以指定要在哪个项目之后构建哪个项目。因此,如果您想持续运行特定的作业,可以在“在其他项目构建之后构建”下的“要监视的项目”字段中添加项目名称,即您的作业名称,并可以使用以下选项运行它:- 仅在构建稳定时触发
即使构建不稳定也触发
即使构建失败也触发

配置完成后,您只需触发一次,它就会持续运行。 - Arpit Lekhra

0

你可以尝试一下

  1. 添加构建步骤以创建几个文件 - 每个条件设置一个文件。
  2. 添加构建步骤 触发/调用其他项目的构建,使用 添加参数工厂对于每个匹配的文件,调用一个构建
  3. 被调用的项目可能有一个输入文件作为参数 - 它将从第2步的父项目中传递。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接