为什么不为 TeamCity 中的构建链并行构建配置 运行?
Why do build configuration not run in parallel for a build chain in TeamCity?
TeamCity 上有关构建链的所有文档及其博客文章都涉及简单的设置,这些设置不会公开您在现实生活中可能遇到的更复杂的设置,这让我想到了以下问题。
我需要一些更复杂的设置:
A--\ /--D--\
C F
B--/ \--E--/
理想情况下,A & B 和 D & E 会在不同的构建节点上同时 运行。
A--\C/--E
B--/D\--F
在上面的 A & B 运行 并发中,C & D 也是如此,但 C & D 只有在 A & B 都通过时才会触发,E & F 同样如此,它们 运行 并发,但前提是C & D 均通过。
/-- B --\
A D
\-- C --/
理想情况下,B 和 C 应该 运行 在不同的节点上并行。
但是 TeamCity 拒绝这样做,并且所有构建都不是按顺序在单个构建节点上进行的,这非常烦人,因为它会浪费构建时间。
我已经尝试了快照依赖项和完成构建触发器的各种组合,但均无济于事,TeamCity 拒绝运行任何并行步骤。
您应该删除所有 "Finished build" 触发器。 运行 快照依赖链不需要它们。只需在链的最后配置(F 或 D)中开始构建,所有其他构建将根据重复使用配置添加到队列中。
TC 10.x 中的快照依赖项在模板和构建配置之间的工作方式略有不同。
鉴于此示例配置,在 D 上触发构建的位置将导致 2 个不同的执行树。
/-- B --\
A D
\-- C --/
如果在模板上定义了快照依赖项,那么 TeamCity 将按顺序执行所有构建,例如。 A, B, C & D.
如果在构建配置上定义了快照依赖项,那么 TeamCity 将以 A 的形式执行构建,然后是并行的 B 和 C,最后是 D。
TeamCity 上有关构建链的所有文档及其博客文章都涉及简单的设置,这些设置不会公开您在现实生活中可能遇到的更复杂的设置,这让我想到了以下问题。
我需要一些更复杂的设置:
A--\ /--D--\
C F
B--/ \--E--/
理想情况下,A & B 和 D & E 会在不同的构建节点上同时 运行。
A--\C/--E
B--/D\--F
在上面的 A & B 运行 并发中,C & D 也是如此,但 C & D 只有在 A & B 都通过时才会触发,E & F 同样如此,它们 运行 并发,但前提是C & D 均通过。
/-- B --\
A D
\-- C --/
理想情况下,B 和 C 应该 运行 在不同的节点上并行。
但是 TeamCity 拒绝这样做,并且所有构建都不是按顺序在单个构建节点上进行的,这非常烦人,因为它会浪费构建时间。
我已经尝试了快照依赖项和完成构建触发器的各种组合,但均无济于事,TeamCity 拒绝运行任何并行步骤。
您应该删除所有 "Finished build" 触发器。 运行 快照依赖链不需要它们。只需在链的最后配置(F 或 D)中开始构建,所有其他构建将根据重复使用配置添加到队列中。
TC 10.x 中的快照依赖项在模板和构建配置之间的工作方式略有不同。
鉴于此示例配置,在 D 上触发构建的位置将导致 2 个不同的执行树。
/-- B --\
A D
\-- C --/
如果在模板上定义了快照依赖项,那么 TeamCity 将按顺序执行所有构建,例如。 A, B, C & D.
如果在构建配置上定义了快照依赖项,那么 TeamCity 将以 A 的形式执行构建,然后是并行的 B 和 C,最后是 D。