【发布时间】:2019-09-04 17:47:28
【问题描述】:
我正在尝试设置一个脚本来杀死/中止所有具有特定名称的 Jenkins 作业。我很难找到有关 Jenkins 类及其所含内容的文档。
我知道有可用的插件,但我被指示不要使用它们。否则,我在这里(How to stop an unstoppable zombie job on Jenkins without restarting the server?)、(Cancel queued builds and aborting executing builds using Groovy for Jenkins)提到了一些半相关的问题,我试图从这些问题中重新编写一些代码,但这并不会导致工作被终止:
import hudson.model.*
def jobList = Jenkins.instance.queue
jobList.items.findAll { it.task.name.contains('searchTerm') }.each { jobList.kill(it.task) }
我还尝试了以下方法:
def jobname = ""
def buildnum = 85
def job = Jenkins.instance.getItemByFullName(jobname)
for (build in job.builds) {
if (buildnum == build.getNumber().toInteger()){
if (build.isBuilding()){
build.doStop();
build.doKill();
}
}
}
第一个脚本没有执行硬性任务,而是什么都不做,而第二个脚本抛出 NullPointerException:
java.lang.NullPointerException: Cannot get property 'builds' on null object
【问题讨论】:
标签: jenkins groovy jenkins-pipeline jenkins-groovy