У меня есть сценарий groovy, который просматривает все прогоны в проекте и отменяет некоторые из них в зависимости от некоторого условия. Но как отменить сборки, которые поставлены в очередь и еще не запущены? Я использую этот код:
build.getProject()._getRuns().iterator().each{ run ->
def exec = run.getExecutor()
// if the run is not a current build and it has executor (running) then stop it
if(run != build && exec != null /* && SOME OTHER CONDITIONS */) {
def cause = { "interrupted by build #${build.getId()}" as String } as CauseOfInterruption
// Cancel the root
exec.interrupt(Result.ABORTED, cause)
}
}