有没有办法通过一个以前的工作再创一个Hudson工作来创建新的Hudson工作?
例如,如果我需要逐个创建新的作业群,则自动创建具有不同参数的类似配置的4个作业
基本上是这样的步骤
svn cp
命令并使用脚本svnbranch
名称或者换句话说,我需要克隆上一个工作并给出新的分支名称,其中$ Branch来自新工作。
由于
答案 0 :(得分:12)
您可以尝试 Hudson Remote API 来完成此类任务(setting up an Hudson project)。
例如,请参阅本教程,并记住您可以非常轻松地显示帮助:
java -jar hudson-cli.jar -s http://your_Hudson_server/ help
所以,要复制一份工作:
java -jar hudson-cli.jar -s http://your_Hudson_server/ copy-job myjob copy-myjob
答案 1 :(得分:7)
其他答案已经涵盖了一些,但是有一个简单的方法来复制config.xml:
curl --user USER:PASS -H "Content-Type: text/xml" -s
--data-binary "@config.xml" "http://hudsonserver:8080/createItem?name=newjobname"
答案 2 :(得分: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()
答案 3 :(得分:2)
jenkins似乎有一个插件。
https://wiki.jenkins-ci.org/display/JENKINS/Job+DSL+Plugin
我还没有测试过这个插件。但是如果插件有效,它应该可以减轻直接复制作业和修改变量/值的一些人为错误。
答案 4 :(得分:1)
def jenkins = hudson.model.Hudson.instance
def template = jenkins.getItem("MyTemplate")
def job = jenkins.copy(template,"MyNewJob")
job.save()
我现在使用这个我必须使用Groovy更改MyNewJob的参数值我将如何做?
ex我有一个名为" Build_BranchName"默认值为// perforce / mybranch 我必须把它改成 // Perforce的/ mynewbranch
答案 5 :(得分:0)
您可以选择VonC刚刚给您(这可能是最安全的方式,但您也可以通过在{Hudson_Home} \ jobs中创建一个新目录来进行不同的路径(目录名称将是作业名称)和在那里复制一个修改过的config.xml。修改基本上就是SVN URL。你应该从你正在复制的作业中查看xml。你需要找到你如何通过脚本更改xml文件,但这是第二个问题。
不幸的是,您必须重新启动Hudson,或强制重新加载配置。 (访问页面http://:/ reload以重新加载配置)。
答案 6 :(得分:0)
如果您愿意使用GIT(就像我一样,将主SVN仓库镜像到Hudson / Jenkins服务器上,并且效果很好).... ..你可以尝试Stephen Haberman的post-receive-hudson:
此挂钩为每个挂钩创建新作业 在哈德森连续分支 整合工具。除了创造 如果需要,推动的用户是 如果他们添加到作业的电子邮件列表中 还没有。
在任何情况下,该脚本都可以为您提供有关如何远程控制Jenkins(Hudson)的新提示。