【问题标题】:simultaneous instances of the same hudson/jenkins job同一 hudson/jenkins 作业的同时实例
【发布时间】:2012-07-07 00:20:59
【问题描述】:

我想要一种方法让个人用户将 repo 路径发送到 hudson 服务器并让服务器启动该 repo 的构建。我不想留下动态创建的作业配置的痕迹。我想启动同一作业的多个同时实例。显然,这要求不同实例的工作空间不同。我相信使用任何当前的扩展都是不可能的。我愿意接受不同的方法来完成我想要完成的工作。

我只希望 hudson 服务器能够接收来自外部资源的构建请求,并在有空闲执行程序时启动它们。我希望所有构建的构建配置都相同,除了 repo 的位置。我不希望有几十个相同的工作自动生成名称。

有没有人使用 Hudson 或 Jenkins 来做类似的事情?你如何设置它?我想有了足够的脚本,我可以通过脚本中的 CLI API 动态创建必要的作业配置,然后在完成后将其销毁。但是我想保留工件,因此在完成运行时破坏工作是一个问题。我真的不想编写和维护自己的扩展。

【问题讨论】:

    标签: hudson jenkins


    【解决方案1】:

    这对于 Jenkins 来说应该非常简单,不需要任何插件,尽管这取决于您使用的 SCM 的类型。
    无论如何,来自哈德森的upgrading 是值得的;自从成为 Jenkins 以来,在许多版本中支持您的用例所需的功能肯定都得到了改进。

    您希望将 repo 路径作为参数传递给您的构建,因此您应该在构建配置中选择“This build is parameterized”选项。在那里您可以添加一个名为 REPO_PATH 或类似名称的字符串参数。

    接下来,在您指定签出代码的位置处,将路径替换为 ${REPO_PATH}
    如果您要从脚本中签出代码(或者需要访问 repo 路径),该变量将自动添加到您的环境中,因此您可以从 shell 脚本或 Ant 文件中引用 ${REPO_PATH}

    此时,当按下Build Now时,会提示你输入一个repo路径,然后才会开始构建。如上面的 wiki 页面所述,您可以调用 buildWithParameters URL 直接使用所需参数开始构建,例如http://server/job/myjob/buildWithParameters?REPO_PATH=foo

    最后,如果您希望构建同时执行,Jenkins 可以通过为并发构建创建临时工作区来为您管理。只需启用该选项 作业配置中的“如有必要,执行并发构建”。

    工件将可用,与任何其他 Jenkins 构建相同。尽管您可能想管理保留了多少最近的工件;这可以通过选中“Discard Old Builds”来完成,然后在 Advanced... 下,您可以选择为“Max # of builds to keep with artifacts”输入一个值。

    【讨论】:

    • 实际上,我看到我正在使用的 Hudson 2.2.0 也支持该功能。但它不支持矩阵式作业,这就是我没有看到它的原因。我想我可以解决这个问题。感谢您的帮助!
    • @ChrisQuenelle Jenkins 从 1.467 版本开始支持并发矩阵构建,也可以进行参数化矩阵构建。
    猜你喜欢
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    相关资源
    最近更新 更多