我们的团队正在使用合并请求来确保代码审核。 我们使用jenkins作为CI服务器。
有些时候,在审查给定分支时,我们会将大量提交推送到给定分支。在jenkins中,我们为每个提交触发一个构建。
如果检测到同一分支的多个作业,是否有办法自动清除jenkins作业队列?只保留最近的工作?确保建立最新的提交。
答案 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)
}