在 TeamCity 中,您可以创建构建依赖项,其中一个构建在另一个构建成功完成之前不会开始。TFS 2012 有可能吗?在哪里可以找到有关如何设置的更多信息?
1 回答
简短的回答是 TFS 没有等效的功能,但是您可以通过一些工作来实现相同的目标。
我遇到的一个常见场景是一个团队想要在签入时进行构建,该构建执行一些快速的工作(编译、快速单元测试),然后在想要进行另一个构建运行一些较慢的工作(集成测试、测试部署)之后立即, ETC)。我经常和我的团队一起这样做,我会设置一个在 5 分钟内运行的门控构建,然后在门控构建签入后立即启动一个 CI 构建,这可能需要一个小时才能运行。我喜欢这种方法,因为它可以快速获得开发人员的一些反馈,然后很快就会得到更详细的反馈。
另一个受支持的场景是让构建显式启动它的依赖项。如果您查看 Lab Build 模板,它正是这样做的,它将首先启动应用程序 TFS Build,Lab Build 将等待它完成,然后 Lab Build 将继续。从理论上讲,您可以让构建 A 启动构建 B 启动 C 和 D 等。
如果您的需求比这更复杂(例如,您有多个应用程序,每个应用程序都有一个构建,那么一个产品包含一些需要在每个应用程序更改后构建的应用程序,然后可能是一个产品套件构建,需要随时启动a 产品更改 - 这是我处理的场景)。我基本上实现了一个自定义构建依赖系统来处理这个问题。我们创建了一个描述构建依赖项的 XML 文件,然后编写了一个简单的 ISubscriber 插件,我们将部署到 TFS,它会侦听 Build Completed 事件,然后查阅依赖项配置并启动适当的构建。