如果另一个工作今天至少运行一次,则运行Jenkins工作

时间:2017-03-06 22:26:24

标签: jenkins

我想设置一个Jenkins工作(让我们称之为A),每晚运行一次并检查另一个Jenkins工作(让我们称之为B)今天至少成功运行一次。我不希望B触发A,因为B可能每天运行多次,但我希望A只运行一次 - 如果B没有运行则不要运行。

我想过使用“条件步骤”选项,但我不确定如何配置条件。我知道检查另一个作业构建的时间戳的唯一方法是通过Jenkins restful API,但如果我通过shell中的curl命令来做,我必须公开Jenkins用户的密码,我不想这样做(更不用说必须在shell中解析json输出,我也宁愿避免这样做。)

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

这可能不是最好的方法,但可能有效:

B成功运行后,让B将日期写入文件F_B。

在A运行后,将A写入文件F_A。

在A运行之前,检查F_A和F_B,仅在F_A和F_B不同时运行A.

现在你可以在B成功运行后制作B触发器A.

或许您可以查看jenkins FSTrigger

向B添加后期构建步骤(仅在成功时),检查文件中的日期并仅在日期与此构建完成时的数据不同时进行更改。

将FSTrigger添加到A并监视该文件。

答案 1 :(得分:0)

您可以使用 Script SCM plugin

很好地实现这些功能
  • 你基本上将作业“A”的SCM“轮询”步骤实现为一个groovy脚本,检查作业“B”是否确实成功运行
  • 将“A”的SCM轮询间隔设置为一次/晚。