Reputation: 95
All documentation on build chains on the TeamCity and also their blog postings deals with simples setup that don't expose the more complex setups that you may encounter in real life which brings me to the following question.
I have the need for a few more complex setups:
A--\ /--D--\
C F
B--/ \--E--/
Ideally A & B and D & E would run concurrently on different build nodes.
A--\C/--E
B--/D\--F
In the above A & B run concurrent, as do C & D but C & D are only triggered if both A & B pass, the same goes for E & F they run concurrent, but only if both C & D pass.
/-- B --\
A D
\-- C --/
Ideally B & C should run in parallel on different nodes.
However TeamCity refuses to do this and all builds are un sequentially on a single build node which is highly annoying because it blows build times out of the water.
I've tried various combinations of Snapshot dependencies and Finish build trigger to no avail, TeamCity refuses to run any steps parallel.
Upvotes: 1
Views: 1829
Reputation: 95
Snapshot dependencies in TC 10.x work slightly different between templates and build configurations.
Given this example config, where the build is triggered on D will result in 2 different execution trees.
/-- B --\
A D
\-- C --/
If the snapshot dependencies are defined on the templates then TeamCity will execute all builds sequentially, eg. A, B, C & D.
If the snapshot dependencies are defined on the build configuration then TeamCity will execute the builds as A, then B & C in parallel and finally D.
Upvotes: 2
Reputation: 4923
You should remove all "Finished build" triggers. They are not needed to run snapshot dependencies chain. Just start a build in last configuration of chain (F or D) and all other builds will be added to queue according to re-use configuration.
Upvotes: 0