2012-08-24 22 views
3

我想解决一个有效的设置,以确保编译和部署构建优先于运行测试。我有包含两个构建配置单一药剂:是否可以限制某些构建配置的构建队列?

  • 构建,部署高电平测试(5分钟)
  • 单元测试,集成测试,烟雾测试(15分钟)

我有配置触发器以便每次在VCS中发生提交时都会运行构建项目。我想要做的就是排队测试项目以低优先级运行。但是,如果在短时间(几分钟)内完成多个提交,现在我想排队进行大量测试项目。

例如,这是我想达到的目标:

  • 12:00提交
  • 12:02提交
  • 日12:08提交

构建/部署配置拉开:

  • 12:00(eta 5分钟)
  • 12:05(ETA 5分钟)
  • 12:10(ETA 5分钟)

测试项目在拉开序幕:

  • 12:15(ETA 15分钟)

测试项目只运行一次最新的部署代码。我不想排队测试项目3次。

实际上,我只想运行测试项目,当代理空闲并且未经测试的更改已被提交时。这可能吗?如果是的话,实现它的最好方法是什么?

回答

2

对于批处理频繁提交,您可以在VCS触发器设置中使用'安静期模式',请阅读here。如果现在队列中的配置 - 禁用复选框'触发VCS触发器设置中的每个签入的内部版本',则避免构建触发。

要管理构建队列优先级,请单击“构建队列”链接,然后单击“配置构建优先级”。在这个地方你可以管理优先级。阅读更多关于here

注意:您应该具有系统管理员角色。

+0

感谢您花时间回答。安静期模式允许我在开始构建之前等待x分钟,但是实际上并不妨碍将多个构建添加到队列中? – psych

+0

如果你看看我上面的例子,5分钟的安静时间不会导致在12:07添加测试项目,然后在12:13再次添加测试项目。由于构建优先级,测试不会运行到第三次部署(正确)之后,但是它们会在完全相同的部署上运行两次?即使代理处于空闲状态,较大的安静时间也会导致测试运行频率降低。理想情况下,我只想说'构建队列为空时,如果有任何未经测试的更改运行测试'。我不确定这是否可能。 – psych

+0

如果您禁用'在每个签入时触发构建'并为非测试配置设置较高优先级,则测试构建将保持队列,堆栈更改并等待,直到代理将空闲。 –

相关问题