关于TeamCity上构建链的所有文档以及他们的博客帖子都涉及简单设置,这些设置不会暴露您在现实生活中可能遇到的更复杂的设置,这使我产生以下问题。
我需要一些更复杂的设置:
A--\ /--D--\
C F
B--/ \--E--/
理想的A& B和D& E将在不同的构建节点上并发运行。
A--\C/--E
B--/D\--F
在上面的A& B同时运行,C& D但C& D仅在A& A时触发。 B传球,E& F他们同时运行,但前提是C& D传球。
/-- B --\
A D
\-- C --/
理想的B& C应该在不同的节点上并行运行。
然而,TeamCity拒绝执行此操作,并且所有构建都是在单个构建节点上顺序执行,这非常令人讨厌,因为它会将构建时间从水中吹走。
我尝试过各种Snapshot依赖项组合和Finish构建触发器无效,TeamCity拒绝并行运行任何步骤。
答案 0 :(得分:2)
TC 10.x中的快照依赖项在模板和构建配置之间略有不同。
鉴于此示例配置,在D上触发构建将导致2个不同的执行树。
template <class factType>
class Belief : public BeliefRoot
{
/* ... */
factType m_Fact;
std::type_info GetBeliefType() const override
{
return typeid(m_Fact);
}
};
如果在模板上定义了快照依赖关系,那么TeamCity将按顺序执行所有构建,例如。 A,B,C&amp; d。
如果在构建配置上定义了快照依赖项,那么TeamCity将执行构建为A,然后是B&amp; C并行,最后是D.
答案 1 :(得分:0)
你应该删除所有&#34;完成的构建&#34;触发。它们不需要运行快照依赖链。只需在链的最后一个配置(F或D)中开始构建,所有其他构建将根据重用配置添加到队列中。