Hudson / Jenkins:在几个工作之间共享参数

时间:2012-09-14 15:46:47

标签: jenkins hudson parameter-passing

我有大约20个使用常用参数(用户,密码)的作业,有时密码到期......所以我必须在所有作业上更改它,这非常耗时(并且容易出错,我可能会忘记一个)

我想到了:

  • 使用一种魔术属性文件(如果存在直接行,如KEY,VALUE添加到作业参数中)
  • 直接在build.xml内添加相同类型的KEY,VALUE对,但在哪里?它真的很难看......也许在build.xml
  • 中嵌入了专用的XML
  • 调用一个奴隶作业(如何?)向父母推送所需的值......

你可以看到我只是在Hudson / Jenkins(我正在使用Jenkins 1.424.2.2)开始,谢谢你的帮助!

编辑:我不是Jenkins实例的管理员,所以我无法访问全局属性......

3 个答案:

答案 0 :(得分:7)

前往Jenkins家中导航:

  1. 管理Jenkins>
  2. 配置系统>
  3. 全球资产>
  4. 环境变量> ....

答案 1 :(得分:1)

我可以想到两种方法:

  • 使用管理Jenkins 下的全局属性 - > 配置系统。在这里,您可以定义应该可用于所有作业的环境变量。

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

您可以阅读http://[jenkinshost]/job/[jobname]/api下的api功能,以下是有关阅读和更改config.xml的内容:

  

获取/更新config.xml

     

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

答案 2 :(得分:0)

我最终成功了:

  • 将加密凭据保留在网页中
  • 通过shell脚本(wget)在Hudson中检索它们,解密它们,并在工作区中使用行build.properties创建name=value文件(在我的情况下为ssh.password=...

这很有效,因为Ant构建步骤会检测此文件并将变量传递到其上下文中。多亏了我可以集中我的凭据。