ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

jenkins批量复制view中所有job

2022-07-06 19:01:43  阅读:161  来源: 互联网

标签:replace job str new jenkins def view


 

需要将jenkins中某一个view中的所有job都复制到另外一个view中,一个一个复制有点蛋疼,所以查询了一下资料,使用groovy scripts 来实现这个功能

  • 新建view
  • 打开系统管理 -> 脚本命令行
import hudson.model.*
//源view

def str_view = "AOSIT_Frontend_SONAR"

//目标view

def str_new_view = "PTTEST_Frontend_SONAR"

//源job名称(模糊匹配)

def str_search = "-aosit-sonar"

//目标job名称(模糊匹配后替换)

def str_replace = "-pttest-sonar"

def view = Hudson.instance.getView(str_view)

//copy all projects of a view

for(item in view.getItems())

{

  //create the new project name

  newName = item.getName().replace(str_search, str_replace)

  // copy the job, disable and save it

  def job

  try {

  //因为第一次导入后报错,所以添加了try-catch 跳过已存在的job

  job = Hudson.instance.copy(item, newName)

  } catch(IllegalArgumentException e) {

     println(e.toString())

     println("$newName job is exists")

     continue

  } catch(Exception e) {

    println(e.toString())

    continue

  }

  job.disabled = true

  job.save() 

// update the workspace to avoid having two projects point to the same location //AbstractProject project = job //def new_workspace = project.getCustomWorkspace().replace(str_search, str_replace) //project.setCustomWorkspace(new_workspace) // project.save() //add job to view Hudson.instance.getView(str_new_view).add(job) println(" $item.name copied as $newName") }

 

 

  

标签:replace,job,str,new,jenkins,def,view
来源: https://www.cnblogs.com/colder/p/16452072.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有