6

I have about 20 jobs using common parameters (user, password), and sometimes the password expires... So I have to change it on all jobs, which is really time consuming (and error prone, I may forget one).

I thought about:

  • using a kind of magic property file if that exists to have directly lines like KEY, VALUE added into job parameters
  • adding the same kind of KEY, VALUE pair directly inside build.xml, but where ? And it's really ugly... Maybe with a dedicated XML embedded into the build.xml ?
  • calling a slave job that would (how ?) push up to the parent one the desired values...

As you can see I'm only starting in Hudson/Jenkins (I'm using Jenkins 1.424.2.2), thanks for your help !

EDIT: I'm not admin of the Jenkins instance, so I cannot have access to global properties...

4

3 回答 3

7

转到您的 Jenkins 家并导航:

  1. 管理詹金斯 >
  2. 配置系统 >
  3. 全球属性 >
  4. 环境变量 >....
于 2012-09-17T07:14:05.753 回答
1

我可以想到两种方法:

  • 使用全局属性,在Manage Jenkins -> Configure system下找到。在这里,您可以定义所有作业都应该可用的环境变量。

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

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

获取/更新 config.xml

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

于 2012-09-14T16:02:26.433 回答
0

我最终成功了:

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

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

于 2012-12-12T09:19:25.293 回答