代码之家  ›  专栏  ›  技术社区  ›  Emmanuel

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

  •  6
  • Emmanuel  · 技术社区  · 12 年前

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

    我想:

    • 使用一种神奇的属性文件(如果存在),将KEY、VALUE等行直接添加到作业参数中
    • 直接在内部添加相同类型的KEY、VALUE对 build.xml ,但是在哪里?而且它真的很难看。。。也许在 编译文件 ?
    • 调用一个从属作业,该作业将(如何?)向上推到父作业所需的值。。。

    正如你所看到的,我只是从哈德逊/詹金斯开始(我使用的是詹金斯1.424.2.2),谢谢你的帮助!

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

    3 回复  |  直到 12 年前
        1
  •  7
  •   Pulak Agrawal    12 年前

    前往您的詹金斯家并导航:

    1. 管理詹金斯>
    2. 配置系统>
    3. 全局属性>
    4. 环境变量> ....
        2
  •  1
  •   Anders Lindahl    12 年前

    我可以想出两种方法:

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

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

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

    获取/更新config.xml

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

        3
  •  0
  •   Emmanuel    12 年前

    我最终成功了:

    • 在网页中保存加密凭据
    • 通过shell脚本(wget)在Hudson中检索它们,解密它们,并创建 build.properties 工作空间中带有行的文件 name=value (就我而言 ssh.password=... )

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