如何在特定时间通过其他工作触发Jenkins工作?

时间:2016-05-03 11:48:13

标签: jenkins jenkins-plugins

我有两份工作,JobA和JobB,JobA每天都在13.00运行并注册一些付款。我希望JobA触发JobB验证付款,当且仅当JobA成功且JobB需要在第二天04:00运行

知道怎么做吗?

BR

2 个答案:

答案 0 :(得分:1)

我一直无法找到任何可以开箱即用的东西。当然,您可以安排定期建立工作,但这不是您想要的全部。

你可以试试这两个想法中的一个(我自己也没有实现过)。

  1. 将JobB设置为在凌晨4点定期构建,但停用作业。如果JobA成功,则创建具有构建触发器的中间作业以构建(例如,在要监视的项目中设置JobA部分)。中间作业将运行代码以激活JobB - 使用groovy插件的groovy代码将是最简单的,或者您可以通过shell / batch脚本使用其余的api。然后,作为JobB中的最后一个构建步骤,运行类似的脚本以再次停用该作业。
  2. Schedule Build Plugin允许您安排未来的构建。但是,这似乎是一个手动过程。如果您可以弄清楚如何通过此插件以编程方式触发计划的构建,则可以将该代码添加到中间作业,该作业的设置方式与选项#1中提到的相同。

答案 1 :(得分:0)

您可以使用构建作业:步入管道(https://jenkins.io/doc/pipeline/steps/pipeline-build-step/)并在几秒钟内完成以在需要的时间触发作业。

编辑:

我做的方式 def currentDate = GregorianCalendar.getInstance()

如果你想在次日凌晨5点 def plannedDate = new GregorianCalendar(currentDate.get(Calendar.YEAR),currentDate.get(Calendar.MONTH),currentDate.get(Calendar.DAY_OF_MONTH)+ 1,5,0)

def quietPeriod =(plannedDate.getTime()。getTime() - currentDate.getTime()。getTime())/ 1000