我正在使用jenkins job dsl创建pipelineJob,我不知道如何通过同一插件删除那些作业。
我想知道代码库中的内容,我认为这是行不通的。
我想到了使用rest api调用api来删除工作,任何人都可以给我任何指导,以解决这些问题的方法或扩展Java类。
基本上是:
Huuuge谢谢
答案 0 :(得分:0)
我还没有使用here和here中的脚本,但是它们看起来很有希望。
import jenkins.model.*
def matchedJobs = Jenkins.instance.items.findAll { job ->
job.name =~ /my_regex_here/
}
matchedJobs.each { job ->
println job.name
//job.delete();
}
如果您的工作名称中没有共享相同的模式,并且您无法使用Regex,则here和here是一些用于读取具有Groovy的文件的资源。
答案 1 :(得分:0)
最后,为了满足我的需要,我不得不进行api调用。
它看起来像这样:
RestApiJobManagement jm = new RestApiJobManagement(baseUrl)
HttpResponseDecorator resp = jm.restClient.get(path: 'crumbIssuer/api/xml')
if (resp.status == 200) {
restClient.headers[resp.data.crumbRequestField] = resp.data.crumb
}
resp = jm.restClient.post(
path: '/job/${job.jobName}/doDelete',
requestContentType: 'charset=UTF-8'
)
println "status ${resp.status}"
唯一的问题是我无法读取jenkinsjobdsl.groovy文件并无法获取所有作业名称以填充$ {job.jobName}