Configuration 自动配置或创建hudson作业

Configuration 自动配置或创建hudson作业,configuration,hudson,Configuration,Hudson,有没有办法在以前的工作基础上再增加一份哈德逊工作来创造新的哈德逊工作 例如,如果我需要一个接一个地创建新的一组作业,则自动创建4个具有不同参数的类似配置的作业 基本上是这样的步骤 创建SVN分支,我可以调用svncp命令,并使用脚本将其参数化 基于新的svnbranchname创建一些构建 稍后贴上标签 或者换句话说,我需要克隆上一个作业,并在新作业中出现$branch时提供新的分支名称 感谢您可以尝试完成此类任务() 例如,请参见本教程,记住您可以非常轻松地显示帮助: java -jar hu

有没有办法在以前的工作基础上再增加一份哈德逊工作来创造新的哈德逊工作

例如,如果我需要一个接一个地创建新的一组作业,则自动创建4个具有不同参数的类似配置的作业

基本上是这样的步骤

  • 创建SVN分支,我可以调用
    svncp
    命令,并使用脚本将其参数化
  • 基于新的
    svnbranch
    name创建一些构建
  • 稍后贴上标签
  • 或者换句话说,我需要克隆上一个作业,并在新作业中出现$branch时提供新的分支名称

    感谢您可以尝试完成此类任务()

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

    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
    

    您可以选择VonC刚才给您的选项(这可能是最安全的方法,但您也可以通过在{Hudson_Home}\jobs中创建一个新目录(目录名将是作业名)来进行不同的操作)并在其中复制修改后的config.xml。修改基本上只是SVN URL。您应该从正在复制的作业中签出xml。您需要了解如何通过脚本更改xml文件,但这是第二个问题


    不幸的是,您必须重新启动Hudson,或者强制重新加载配置。(请访问页面http://:/reload以重新加载配置)。

    其他答案中已经介绍了这一点,但要通过以下方式轻松复制config.xml:

    curl --user USER:PASS -H "Content-Type: text/xml" -s  
    --data-binary "@config.xml" "http://hudsonserver:8080/createItem?name=newjobname"
    

    如果您愿意使用GIT(像我一样,将主要的SVN回购镜像到Hudson/Jenkins服务器上,并且效果很好)。。。。 …你可以试试斯蒂芬·哈伯曼的:

    这个钩子为每个人都创建了新的工作 哈德逊河支流 集成工具。除了创建 作业如果需要,则推送的用户是 如果他们 我们还没有到那里


    在任何情况下,该脚本都可以为您提供有关如何远程控制Jenkins(Hudson)的新提示。

    您可以使用如下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()
    

    詹金斯似乎有一个插件

    我还没有测试过这个插件。但是如果这个插件能工作,它应该可以减少直接复制作业和修改变量/值时的人为错误

    def jenkins = hudson.model.Hudson.instance
    def template = jenkins.getItem("MyTemplate")
    def job = jenkins.copy(template,"MyNewJob")
    job.save()
    
    我现在使用它,我必须使用Groovy更改MyNewJob的参数值,我将如何做到这一点

    例如,我有一个名为“Build_BranchName”的参数,默认值为//perforce/mybranch 我得把它改成
    //perforce/mynewbranch

    我认为从网页上阅读api更好。只需访问http://:/api,您将看到一些一般性的解释以及复制api的文档。如果您对api的其他部分感兴趣,请转到实际执行配置的页面,并向其中添加
    /api
    。使用你最喜欢的浏览器版本。即使你不能在本地访问Hudson jar,浏览器版本也能正常工作(不管怎么说,不太可能的原因是什么)第二次阅读您的帖子,我学到了一些新的东西。我以为您只能在同一台服务器上使用cli与Hudson对话。但这只是从命令行使用远程API的一种简单方法。我总是使用
    wget
    与Hudson对话。不幸的是,我只能投票支持您一次(@VonC我已经能够复制作业了,现在我需要从哈德逊本身运行它,我尝试执行此批处理并运行java-jar hudson-cli.jar-s copy job myjob copy myjob没有创建任何作业只是成功了,我如何从哈德逊本身运行?@sharp,我不确定,除了可能来自专用哈德逊作业本身之外(然后将启动
    java-jar
    命令行)@VonC您是说在hudson作业中无法从批处理命令调用吗?感谢各位提出的宝贵建议,但重新启动hudson根本不可能,因为它会破坏我的另一个构建-:(@praveen:VonC的解决方案不需要重新启动,也不需要重新加载配置。这就是为什么我更喜欢VonC的原因之一。我不确定从磁盘重新加载配置是否会破坏构建。无论如何,使用VonC的解决方案,你就可以了。
    wget
    在使用远程api时效果非常好。但是你可以使用ma除了wget和hudson的cli之外,还有许多脚本语言可以与远程api进行对话。@Peter我在windows中可以获得克隆作业,但在linux中尝试时,java-jar hudson-cli.jar-s help Exception在线程“main”java.io.FileNotFoundException:在sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1288)中hudson.cli.FullDuplexHttpStream.(FullDuplexHttpStream.java:61)hudson.cli.cli.(cli.java:90)hudson.cli.cli.(cli.java:62)hudson.cli.cli.main(cli.java:175)有什么意见或建议吗?我会提交一份问题报告,可能有人可以帮助你。让你走吧。看看
    http:///api
    。这将向您展示一些api方面的帮助。它还将告诉您如何复制作业。然后转到
    http:///job//api
    这将解释如何更改作业设置。因为您可以n从浏览器执行此操作,您也可以使用
    wget
    (用于访问web服务器的linux/unix工具)来执行此操作。无论出于何种原因,'--data“@config.xml”选项对我不起作用。我使用了--data“$xml”YMMV。您必须使用
    --data binary
    来避免换行符的问题。我创建了一个用于运行Jenkins实例准备使用DSL脚本的方法。希望此帮助扫描您,请给出一个使用Git的相同方法的示例?