build - 何时使用门控值机?

我正在使用 TFS 2010。目前我仅在主干 (MAIN) 分支上使用 Gated Check-in 构建。而且,我在 DEV 和 RELEASE 分支上使用 CI。

  • 为什么不在所有分支上使用 Gated Check-in 构建?
  • 在什么情况下,您不应该在 DEV 和 RELEASE 分支上使用 Gated Check-in 构建?
  • 在每个分支上始终使用 Gated Check-in 构建会更好吗?

最佳答案

在我们非常庞大的团队中,我们还在主分支中进行了门控,并在开发/功能分支中进行了 CI(其中很多)。

Gated 为分支提供了更多保护,但由于团队庞大且代码库庞大,如果整个开发团队都在该分支中进行更改,它可以备份队列。

CI 提供保护,让开发人员更加信任并知道任何问题都会很快被发现。它更乐观一些,并且允许团队更快地移动,这适合开发分支。

在这两种情况下,开发人员都会运行单元测试并测试他们正在更改的代码。 CI(影响团队)和 Gated(在队列中消耗时间)不应该取代测试——应该有一个比我没有尝试过的更复杂的合理解释。

整个团队在周期的大部分时间里都在使用 CI 的特性/开发分支中,而在游戏结束稳定期间,在更高级别的分支中,有更多的人 - 后两种情况都支持门控的情况。

在大型团队中,我们还需要并行完成 CI 构建和滚动测试,以便在构建时间不重要且完整的测试套件也不重要时更快地发现问题。在那种情况下,人们正在 checkin ,CI 正在接受最后一批 checkin ,运行构建,当构建下降时,另一台机器正在启动并运行测试套件。

https://stackoverflow.com/questions/7614650/

相关文章:

maven - 如何从 lib 文件夹中添加 Maven 依赖 jar 文件

java - 如何创建一个包含 shell 脚本和不在 jar 中的属性文件的 maven 程序集?

c++ - 在 Android NDK 项目中使用我自己的预构建共享库

xcode - 在 Xcode 中指定子项目的配置

android - 特拉维斯-CI `Android 28 licenses have not be

c++ - 如何将 CMake 项目与基于 GYP 的库集成

process - 为什么要自动化构建?

build - 如何使用 NUnit.Runners 包和 psake 执行 NUnit 测试?

build - Dojo 1.8 和构建(或缺少)

java - eclipse 不编译项目