【问题标题】:tfs build wait since last check-in自上次签入以来的 tfs 构建等待
【发布时间】:2014-03-10 20:49:25
【问题描述】:

当我签入一个文件时,TFS CI 触发器等待的时间非常短并开始构建。问题是我可能有 10-30 个文件要签入,我希望 TFS 在我最后一个文件签入后至少等待 5 分钟,然后再开始新的 CI 构建。在 Cruise-Control 中,我有一个“modificationDelaySeconds”属性,我可以在其中设置上次签到后等待的最小秒数。如何在 TFS (2012) 中执行此操作?

【问题讨论】:

    标签: tfs


    【解决方案1】:

    TFS 中最接近的替代方法是定义 Rolling Builds(也称为 Batched-CI-builds)。

    将构建触发器从持续集成更改为滚动构建。这样,构建会等到最后一个构建完成;您还可以配置不希望每 5 分钟构建一次。

    【讨论】:

    • 我试过了。不幸的是,这并不能解决问题。一旦我签入(假设最后一次构建比“构建不超过...”更早),构建就会被触发。
    • @DarkAPI:你为什么要逐个文件检查?您不能将它们作为单个变更集签入吗?如果您不能这样做,您可以尝试使用 *** NO_CI *** 后缀作为除最后一个变更集以外的所有内容的签入注释,以便省略 CI 构建:stackoverflow.com/questions/3829305/what-does-no-ci-stand-for
    • 我逐个文件签入的原因是我可以为每个签入的文件输入注释。这是我们公司的惯例,因此在查看 Visual Source Safe(我们一周前刚刚升级到 TFS,因此问题)时,我们可以看到每个单独文件的修改历史。我假设在 TFS 中是一样的(我可能错了),如果我只为 20 个文件留下 1 条评论,那么查看历史的人将不会清楚为什么修改特定文件,除非他/她当然是看代码。
    • @DarkAPI:如果您逐个文件签入,您将失去与 SourceSafe 相比的最大优势之一:在 ChangeSet 中原子签入一组文件。每个变更集都是一组一致的变更。如果您逐个文件签入,则 TFS 存储库的状态在两者之间无效(也许这就是您最初提出如何避免 CI 构建问题的原因)。我知道细粒度的历史是一个原因,但是我建议您重新考虑是否要继续这种方法。如果您可以一次签入所有文件,速度也会快得多。
    • 感谢您的信息。我同意一次签入所有文件会快得多。我会尝试说服我的同事采用这种方法。
    猜你喜欢
    • 1970-01-01
    • 2017-10-07
    • 2011-10-03
    • 2010-09-18
    • 2017-01-08
    • 1970-01-01
    • 2018-09-23
    • 2017-02-05
    • 2015-04-22
    相关资源
    最近更新 更多