詹金斯:只有在上次完成时才开始构建

时间:2016-03-01 08:19:49

标签: windows jenkins parallel-processing scheduler

所以我有一个Jenkins与奴隶一起跑。对于这个奴隶,我有一个调度程序,每天安排一次作业。

有时调度程序在24小时后没有完成,这很好。环境非常独特,有时会发生这种情况。

这里的问题是调度程序将在24小时后安排作业 - 无论如何。我所拥有的是仍在从站上运行的调度程序,并且第二次调度相同的调度程序并等待直到前一个调度程序完成。添加奴隶的东西永远不会是免费的。

我想要的是一个调度选项,它说“在奴隶上安排这个调度程序。如果这个调度程序仍然在这个奴隶上运行 - 没关系,请忘掉它,让我们看看24小时内会是怎样的。”

有人解决了这个问题吗?

感谢您的帮助!

PS:这是一台Windows服务器。

1 个答案:

答案 0 :(得分:0)

您可以定义一个调度作业,该作业只查看作业是否正在运行,如果不是,则触发长时间运行的作业。您可以编写一个检查状态的脚本,例如:

$r = Invoke-Webrequest http://host/jenkins/job/PROJECTNAME/lastBuild/api/xml?depth=1
if ($r.Content -like '*<building>false</building>*') 
{ 
  echo "all go" 
}
else {
  throw 'job still running'
}

如果成功,只需添加触发另一份工作。

编辑:这是一个powershell脚本。我以为你在使用Windows。