当同一分支的作业待处理时,清理jenkins队列的作业

时间:2017-08-12 20:33:46

标签: jenkins

我们的团队正在使用合并请求来确保代码审核。 我们使用jenkins作为CI服务器。

有些时候,在审查给定分支时,我们会将大量提交推送到给定分支。在jenkins中,我们为每个提交触发一个构建。

如果检测到同一分支的多个作业,是否有办法自动清除jenkins作业队列?只保留最近的工作?确保建立最新的提交。

1 个答案:

答案 0 :(得分:2)

你可以使用一些groovy代码来检查队列中是否有另一个作业,如果这样清理队列或中止你当前的构建。

这是一个清理队列的例子

def branchName = build.environment.get(“GIT_BRANCH_NAME”)

def buildNo = build.environment.get("BUILD_NUMBER")

println "checking if need to clean the queue for" + branchName + "  build      number : " + buildNo

def q = Jenkins.instance.queue
q.items.each { 
    println("${it.task.name}:")
}

q.items.findAll { it.task.name.startsWith(branchName) }.each {
  q.cancel(it.task) 
}
相关问题