0

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

让我知道我的问题是否需要澄清。

4

2 回答 2

1

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

构建步骤:

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

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

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

于 2011-03-03T01:20:11.443 回答
0

一种实用的方法:

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

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

于 2011-03-04T12:51:44.370 回答