仅当另一个构建未失败时,才会触发Team Foundation Server Schedule触发器

时间:2013-09-05 06:54:32

标签: tfs tfs2012 tfsbuild

目前我有一个构建代码并运行测试的canary构建,但不会“发布”任何内容。这只是一种确保签入不会破坏构建的方法。

我有第二个版本,它是构建和发布的“Publish”构建(此时它不执行测试,因为它假定canary构建了经过验证的测试)。如果队列中存在更改集,则此发布版本每晚运行。但是如果最后一个canary构建也破坏了,我想阻止发布版本运行。我怎么能这样做?

发布构建:

  1. 在凌晨1点安排构建并运行:

    一个。如果队列中有变更集AND

    湾如果最后一个Canary构建成功。

3 个答案:

答案 0 :(得分:3)

您是否考虑过将“canary”构建更改为封闭式签入,这将阻止任何代码进入代码库,除非构建成功。

然后,将您的每晚构建设置为一个时间表(我想您已经拥有),但只需取消选中“即使没有任何更改也可以构建”

答案 1 :(得分:0)

除非您创建像这样的自定义模板http://blog.stangroome.com/2011/09/06/queue-another-team-build-when-one-team-build-succeeds/

,否则无法在默认流程模板中检查其他构建是否失败

为什么不在发布版本中包含单元测试,更改集的大小我认为单元测试将运行一次,我想它不会花费更多时间。所以你可以改变流程

发布构建:

在凌晨1点安排构建并运行:

一个。如果队列中有变更集AND

湾如果构建成功并且单元测试通过。

答案 2 :(得分:0)

您的构建过程是否过于耗时?如果不是为什么不在发布之前做一个构建?你有没有检查CI构建输出?

这很容易,你不需要任何额外的努力:)