我收集了超过 150 个项目,将它们重新配置并优化为多个 TeamCity 配置,以及多个构建代理,以尝试提高我们目前以高度顺序方式构建的构建服务器性能。
技术(Web、dotNet、VB6 和 COM+)和系统架构的混合意味着现在可以并行运行各种步骤(配置),但需要进一步整合。
这是一个非常简化的依赖场景,但代表了我们遇到的一个问题......
A -> B -> Collate (-> Deploy)
A -> C -> Collate (-> Deploy)
问题是,如果对 A 进行更改,它将导致 B 和 C 都触发,这将导致 Collate(和 Deploy)步骤运行两次,尽管这是 A 中的常见触发器。正如我所说,这是对近 20 种实际配置的简化和频繁的重建正在影响速度的提高。
任何人都可以提出任何方法来确定 B 和 C 都将作为 A 的结果被触发的事实,并使 Collate 步骤在触发 Collate 步骤之前等待 B 和 C 完成?显然,对 B 或 C 的更改应该能够独立触发 Collate。