jenkins 流水线批量复制
功能
需要批量复制流水线的时候,可将所有的流水线都放置在对应的视图内,进行批量复制
使用方式
- 把需要复制的流水线都放置在同一个
视图A
内. - 手动新建一个
视图B
,准备放置复制出来的新流水线. jenkins
==>系统管理
==>脚本命令行
- 修改脚本内的参数与需求对应,运行即可
代码
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")
}