【问题标题】:How does Hudson handle multiple checkins at the same time?Hudson 如何同时处理多个签到?
【发布时间】:2011-03-03 00:48:21
【问题描述】:

我真的很喜欢 Hudson,但我看不出有一种方法可以快速处理一连串的签到。这个想法是每次签入都会进行冒烟测试,如果更改编号 1234 的回归在签入 1235 和 1236 之前没有完成,那么应该如何处理?是否由外部脚本来跟踪已运行的更改列表,或者 Hudson 是否会为您跟踪?我试图查看文档以了解这是如何处理的,但我找不到任何东西。

如果我的问题需要澄清,请告诉我。

【问题讨论】:

标签: hudson regression


【解决方案1】:

您可以创建参数化构建(例如 SMOKE_TEST),它将修订号作为输入参数(例如 REVISION_NUMBER)。当然,结帐应该作为构建步骤之一来实现(而不是作为触发器):

构建步骤:

  1. 检查所需的修订版 关于构建参数 REVISION_NUMBER
  2. 运行冒烟测试

然后实施另一个作业(例如 REVISION_CONTROLLER),它将监视源代码控制存储库的新修订。一旦找到新修订版,作业就会使用 SMOKE_TEST 作业的 Hudson HTTP URL 以新修订版作为参数启动 SMOKE_TEST 实例,例如:http://server/job/SMOKE_TEST/buildWithParameters?REVISION_NUMBER=...

SMOKE_TEST 的所有实例都将被放入队列中,因此如果 1234 未完成,1235 将等待。如果您想重新运行它,您还有机会为自定义修订启动冒烟测试。

【讨论】:

    【解决方案2】:

    一种实用的方法:

    • 让第一份工作尽可能短,如果必须,让它在之后触发更长的工作(例如,考虑目标在 Maven 中编译与安装)
    • 如果快速作业需要 2 分钟,让它每 2 分钟轮询一次 SCM

    这不能保证每次提交都会编译(“冒烟”),但会关闭。 Hudson/Jenkins 会为您跟踪更改 - 请参阅作业页面上的“更改”菜单项,以及每个构建页面上的“更改”菜单项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      • 1970-01-01
      • 2021-03-05
      • 2012-04-30
      • 2021-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多