繁体   English   中英

使用詹金斯工作 dsl 删除詹金斯工作

[英]removing jenkins job as using jenkins job dsl

我正在使用 jenkins job dsl 创建 pipelineJob,我不知道如何通过同一个插件删除这些作业。

我在代码库中徘徊,我认为这是不可行的。

我想过使用 rest api 调用 api 来删除作业,任何人都可以给我任何关于如何在 groovy 中执行此操作或扩展 Java 类的指导。

基本上它会是:

  • 读取 job.groovy 文件中的作业名称
  • 调用其余的 api (jenkins_base_url+/job+/doDelete)

Huuuge 谢谢

我没有使用这里这里的脚本,但它们看起来很有希望。

import jenkins.model.*

def matchedJobs = Jenkins.instance.items.findAll { job ->
    job.name =~ /my_regex_here/
}

matchedJobs.each { job ->
    println job.name
    //job.delete();
}

如果您的作业在名称中没有共享一个通用模式并且您不能使用 Regex, 这里这里有一些使用 groovy 读取文件的资源。

最后,为了满足我的需求,我不得不进行 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}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM