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