Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hudson/Jenkins:在多个作业之间共享参数_Jenkins_Hudson_Parameter Passing - Fatal编程技术网

Hudson/Jenkins:在多个作业之间共享参数

Hudson/Jenkins:在多个作业之间共享参数,jenkins,hudson,parameter-passing,Jenkins,Hudson,Parameter Passing,我有大约20个作业使用通用参数(用户、密码),有时密码过期。。。所以我必须在所有的工作中改变它,这真的很耗时(而且容易出错,我可能会忘记一个) 我想: 使用一种神奇的属性文件(如果存在的话),直接在作业参数中添加键、值等行 直接在build.xml中添加相同类型的键、值对,但在哪里?而且真的很难看。。。也许在build.XML中嵌入了专用的XML 调用将(如何?)将所需值推送到父作业的从属作业 正如你所看到的,我只是从哈德逊/詹金斯开始(我使用的是詹金斯1.424.2.2),谢谢你的帮助 编

我有大约20个作业使用通用参数(用户、密码),有时密码过期。。。所以我必须在所有的工作中改变它,这真的很耗时(而且容易出错,我可能会忘记一个)

我想:

  • 使用一种神奇的属性文件(如果存在的话),直接在作业参数中添加键、值等行
  • 直接在
    build.xml
    中添加相同类型的键、值对,但在哪里?而且真的很难看。。。也许在
    build.XML
    中嵌入了专用的XML
  • 调用将(如何?)将所需值推送到父作业的从属作业
正如你所看到的,我只是从哈德逊/詹金斯开始(我使用的是詹金斯1.424.2.2),谢谢你的帮助


编辑:我不是Jenkins实例的管理员,因此无法访问全局属性…

我可以想出两种方法:

  • 使用全局属性,可在管理Jenkins下找到。在这里,您可以定义所有作业都可以使用的环境变量

  • 编写一个小脚本,下载、修改和发布作业配置:
    http://[jenkinshost]/job/[jobname]/config.xml

您可以在http://code>http://[jenkinshost]/job/[jobname]/api下阅读api功能,下面是关于读取和更改config.xml的说明:

Fetch/Update config.xml

要以编程方式获取config.xml,请点击
[http://[jenkinshost]/job/[jobname]/config.xml]
。你也可以发布 将更新的config.xml添加到同一URL,以编程方式更新 作业的配置


转到Jenkins主页并导航:

  • 管理Jenkins>
  • 配置系统>
  • 全局属性>
  • 环境变量>

  • 我最终取得了成功:

    • 在网页中保留加密的凭据
    • 借助shell脚本(wget)在Hudson中检索它们,解密它们,并在工作区中创建一个
      build.properties
      文件,其中包含行
      name=value
      (在我的示例中是
      ssh.password=…

    这是可行的,因为Ant构建步骤检测这个文件并将其中的变量传递到它们的上下文中。多亏了这一点,我可以集中我的凭证。

    很好的一点:因为我刚刚编辑过,我不是管理员,所以我不能使用全局属性(管理员肯定不会让我使用它们)。:(匆忙错过了编辑。不管怎样,Anders的第二种方法现在似乎是可行的;否则我们可以叫@Koshuke:)哦,你没有错过它,我添加它是因为您谈到了全局属性:-)如上所述,我不是管理员,所以无法访问全局属性;但第二个解决方案看起来很有希望,让我们看看我是否能做到我想玩的东西。。。