Jenkins复制流水线命令行

jenkins 流水线批量复制

功能

需要批量复制流水线的时候,可将所有的流水线都放置在对应的视图内,进行批量复制

使用方式

  1. 把需要复制的流水线都放置在同一个视图A内.
  2. 手动新建一个视图B,准备放置复制出来的新流水线.
  3. jenkins ==> 系统管理 ==> 脚本命令行
  4. 修改脚本内的参数与需求对应,运行即可

代码

import hudson.model.*
// 3个参数分别,已经有的视图,手动建的新视图,新流水线的前缀
srcView = "Dev"
newView = "SIT"
newJobNameSingal = "new_"

view = Hudson.instance.getView(srcView)

for (item in view.getItems()) {

    println(item)
    //获取
    name = item.getName()
    newName = newJobNameSingal + name
    // 如果需要替换 旧流水线名字内已经有的字符,则使用replace方法,例如把dev_开头流水线改为new_开头
    // newName = name.replace("dev_", "new_")
    // 复制流水线和保存
    def job
    try {
        job = Hudson.instance.copy(item, newName)
    } catch (IllegalArgumentException e) {
        //跳过已存在的job
        println(e.toString())
        println("$newName job is exists")
        continue

    } catch (Exception e) {
        println(e.toString())
        continue
    }

    // 新建后禁用
    // job.disabled = true
    job.save()

    // 修改流水线内的具体参数,如需要可进行调整
    // AbstractProject project = job
    // def newWorkSpace = project.getCustomWorkspace().replace(name, newName)
    // project.setCustomWorkspace(newWorkSpace)
    // project.save()

    
    // 把新创建的流水线加入到新的视图中
    Hudson.instance.getView(newView).add(job)
    println(" $item.name copied as $newName")
}
posted @ 2021-06-01 16:17  Jrri  阅读(871)  评论(0编辑  收藏  举报