自动配置或创建hudson作业

17 configuration hudson

有没有办法通过一个以前的乔布斯再创一个哈德森工作来创造新的哈德森工作?

例如,如果我需要逐个创建新的作业集,则使用不同的参数自动创建具有类似配置的4个作业

基本上这样的步骤

  1. 创建SVN分支我可以调用svn cp命令并使用脚本进行参数化
  2. 根据新svnbranch名称创建一些构建
  3. 稍后标记它

或者换句话说,我需要克隆上一个工作并给出新分支名称,其中$ Branch来自新工作.

谢谢

Von*_*onC 12

您可以尝试使用Hudson Remote API进行此类任务(设置Hudson项目).

例如,请参阅本教程,并记住您可以非常轻松地显示帮助:

java -jar hudson-cli.jar -s http://your_Hudson_server/ help
Run Code Online (Sandbox Code Playgroud)

替代文字

所以,要复制一份工作:

java -jar hudson-cli.jar -s http://your_Hudson_server/ copy-job myjob copy-myjob
Run Code Online (Sandbox Code Playgroud)

  • 我认为从网页上阅读api更好.只需访问http:// <Hudson-server>:<Hudson-Port>/api,您将看到一些一般性解释以及copy api的文档.如果您对API的其他部分感兴趣,请转到实际执行配置的页面并向其添加`/ api`.使用您最喜欢的任何方法.如果您无法在本地访问Hudson jar,浏览器版本甚至可以工作(无论是什么,不太可能的原因) (3认同)

Pau*_*rew 7

其他答案已经涵盖了一些,但是为了一个简单的方法来复制config.xml:

curl --user USER:PASS -H "Content-Type: text/xml" -s  
--data-binary "@config.xml" "http://hudsonserver:8080/createItem?name=newjobname"
Run Code Online (Sandbox Code Playgroud)


小智 7

您可以像这样使用groovy系统脚本:

def jenkins = hudson.model.Hudson.instance
def template = jenkins.getItem("MyTemplate")
def job = jenkins.copy(template,"MyNewJob")
job.scm = new hudson.scm.SubversionSCM("http://base/branches/mybranche")
job.save()
Run Code Online (Sandbox Code Playgroud)