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 @   Jrri  阅读(930)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示