2013-10-08 66 views
1

在TeamCity中,您可以创建构建依赖关系,其中一个构建不会启动,直到另一个构建成功完成。 TFS 2012有可能吗?我在哪里可以找到更多关于如何设置的信息?TFS构建依赖关系

回答

4

简短的回答是,TFS没有相同的功能,但你可以通过一点工作来实现相同的目标。

一个常见的情况我遇到的是一个团队想要做一个构建,当他们办理登机手续,做一些简单的东西(编译,快速的单元测试),那么想要做的运行有些慢的东西另一个构建后立即(集成测试,测试部署等)。我经常和我的团队一起做这件事,然后我会设置一个运行时间为5分钟的门控构建,然后有一个CI构建,一旦Gated Build办理登机手续就会启动,这可能需要一个小时才能运行。我喜欢这种方式,因为它可以让开发人员快速获得一些反馈,然后很快就会获得更详细的反馈。

另一个支持的方案是让构建明确启动它的依赖关系。如果你看看实验室构建模板,它就是这样做的,它将首先启动应用程序TFS构建,并且实验室构建将坐等待它完成,然后实验室构建将继续。从理论上讲,你可以建立一个启动构建B,它启动C & D等。

如果你的需求比这更复杂(例如,你有多个应用程序,每个应用程序都有一个构建,那么包含一些应用程序需要在每个应用程序发生更改后构建,然后可能是产品套件构建需要在产品更改时启动 - 这是我处理的场景)。我基本上实现了一个自定义构建依赖系统来处理这个问题。我们制作了描述构建依赖关系的XML文件,然后编写了一个我们将部署到TFS的简单ISubscriber插件,它将监听Build Completed事件,然后查阅依赖配置并启动相应的构建。