当前构建流导致从机重新启动时,如何避免在队列中运行下一个构建流

时间:2017-01-18 05:10:53

标签: jenkins

我有一个构建流程,可以在两者之间重启机器。

build(“ATSMachineReimage”,MachineName:“q”)

build(“CheckForShutdown”,MachineName:“q”)

build(“SetupMachine”,MachineName:“q”)

build(“RestartMachine”,MachineName:“q”)

build(“CheckForShutdown”,MachineName:“q”)

build(“RunTest”,MachineName:“q”)

Jenkins应该等到机器启动并完成构建流程中的下一个作业(“RunTest”)。

但是如果队列中有另一个构建流程等待,Jenkins会在机器重新启动后立即选择下一个构建流程。

理想情况下,它应该完成总构建流程以继续下一个构建流程。

1 个答案:

答案 0 :(得分:0)

如果问题仅在您有另一个队列构建时,您可以使用groovy脚本清理队列,并继续您的流程。

您可以修改此示例

import jenkins.model.*

def branchName = build.environment.get("GIT_BRANCH_NAME")

println "checking if need to clean the queue for" + branchName + "

println "=========before clean the queue ... =="

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) }