Jenkins清空Jenkins构建队列并停止所有正在运行的作业

2022-12-09  本文已影响0人  87d6dc4b11a7

Jenkins-系统管理-脚本命令行,
一、通过执行以下脚本进行清理Jenkins构建队列

Jenkins.instance.queue.clear()

二、通过执行以下脚本进行清空Jenkins构建队列并停止所有正在运行的作业

Jenkins.instance.queue.items.findAll { !it.task.name.contains("Extenda") }.each { 
  println "Cancel ${it.task.name}"
  Jenkins.instance.queue.cancel(it.task)
}
Jenkins.instance.items.each {
  stopJobs(it)
}
def stopJobs(job) {
  if (job in jenkins.branch.OrganizationFolder) {
    // Git behaves well so no need to traverse it.
    return
  } else if (job in com.cloudbees.hudson.plugins.folder.Folder) {
    job.items.each { stopJobs(it) }
  } else if (job in org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject) {
    job.items.each { stopJobs(it) }
  } else if (job in org.jenkinsci.plugins.workflow.job.WorkflowJob) {
    if (job.isBuilding() || job.isInQueue() || job.isBuildBlocked()) {
      job.builds.findAll { it.inProgress || it.building }.each { build ->
        println "Kill $build"
        build.doStop();
      }
    }
  }
}

return true

https://gist.github.com/sasjo/6c0159d2a438f256b1127d1ef69b522d

上一篇 下一篇

猜你喜欢

热点阅读