在 Jenkins 上每天开始工作不超过一次

问题描述 投票:0回答:1

我有一个项目构建任务,每 4 小时启动一次,如果可以,任务会触发另一个测试任务。现在我想开始一个新的测试任务(旧的也应该可以),但每天最多一次。

我还想澄清一下,如果构建任务不稳定,则不应启动新的测试任务。但如果当天下一次构建成功,而当天新任务还没有启动,那么就需要启动它(尝试每天触发一次这个任务,看看构建是否成功不是我的选择).

我是 Jenkins 新手,不明白哪些插件存在。我知道我可以尝试写一个bash脚本,但是太麻烦了,我不想支持。

jenkins jenkins-pipeline jenkins-plugins
1个回答
0
投票

我知道您不想支持 bash 脚本,但这种自定义行为需要一些逻辑,而且我不知道有任何插件可以完全满足您的要求。话虽这么说,逻辑相当简单,你只需要检查上次构建开始时间:

import org.jenkinsci.plugins.workflow.job.WorkflowJob

import java.time.Duration
import java.time.Instant

def isLastBuildOverADayOld(String jobFullName) {
  def lastBuiltStart = Jenkins.get().getItemByFullName(jobFullName, WorkflowJob).lastBuild.time.toInstant()
  def now = Instant.now()
  return Duration.between(lastBuiltStart, now).toDays() > 1
}
© www.soinside.com 2019 - 2024. All rights reserved.