【发布时间】:2013-12-13 00:30:07
【问题描述】:
我收集了 150 多个项目,将它们重新配置并优化为多个 TeamCity 配置,使用多个构建代理,以尝试提高我们目前以高度顺序方式构建的构建服务器性能。
技术(Web、dotNet、VB6 和 COM+)和系统架构的混合意味着现在可以并行运行各种步骤(配置),但需要进一步整合。
这是一个非常简化的依赖场景,但代表了我们遇到的一个问题......
A -> B -> Collate (-> Deploy)
A -> C -> Collate (-> Deploy)
问题在于,如果对 A 进行更改,将导致 B 和 C 都触发,这将导致整理(和部署)步骤运行两次,尽管在 A 中是一个常见的触发器。正如我所说,这是对近 20 种实际配置的简化,频繁的重建影响了速度的提高。
任何人都可以提出任何方法来确定 B 和 C 都将作为 A 的结果被触发的事实,并在触发 Collate 步骤之前让 Collate 步骤等待 B 和 C 完成吗?显然,对 B 或 C 的更改应该能够独立触发 Collate。
【问题讨论】:
-
很难说不知道您当前使用的是什么触发器 - A、B 和 C 上的触发器是什么?
-
VCS 从 TFS 为 A、B 和 C 触发,并为前面的步骤完成构建,因此 B 将在 A 完成构建时触发(C 也将触发),然后整理将在 B 或 C 完成构建时触发。
-
您目前有哪些触发器(快照和人工制品)?
-
@psych 对不起,我不明白你在问什么,我还没有在原始的“简化依赖场景”和我之前的评论中提供。工件从 A 到 B 和 C,然后到 Collate,VCS 触发器。
-
对不起,我的评论毫无意义。我的意思是说您设置的依赖项不是触发器。
标签: performance build continuous-integration teamcity