How to force TC to execute all builds in a chain
Hi,
I have a very simple scenario. Build A compiles code and runs unit tests and build B runs long running tests. B depends on A. What I'm trying to achieve is that for every succesful build A there is always build B with the same version.
At the moment if I push a change to Git then build A v1 is triggered. So far so good. If before build A v1 is finished there is another push to Git then another build A v2 will be queued which means build B v1 will never be queued. I really want to be able to execute all builds in a given chain no matter if there are outstaning changes or not.
Can I configure TC to do work in this way?
Thanks
Pawel
Please sign in to leave a comment.
I think you want to use Dependent builds. See http://confluence.jetbrains.net/display/TCD65/Dependent+Build for details. Some other useful information:
http://confluence.jetbrains.net/display/TCD65/Configuring+Dependency+Triggers
Finish Build Trigger is another option that you can use. http://confluence.jetbrains.net/display/TCD65/Configuring+Build+Triggers
I think I've done any combination of them :) and still can't get the desired outcome.....
Pawel
So what outcome are you seeing?
Your "B" builds should be using the Finish Build trigger so that it's fired whenever an A build finishes. You can tweak it to fire after any build or a successful build. Then you need to have a snapshot dependency in the B build that is on the A build so that it sees the same set of sources.
We currently use this approach in our environment and it works well.
That's how it setup in my environemnt and still I'm missing some B builds. The problem is that if there is a newer build A in the queue the build B for the previous build A won't be executed.
Settings for build B are attached to the message.
Regards
Pawel
Attachment(s):
Build B.png
Hi
Snapshot dependencies work in opposite direction. Finished build A does not trigger new build B automatically. The dependency means that if you trigger build B, it checks that there is suitable build A.
So you need to setup a trigger in build B configuration, and it will automatically launch new A-builds.
VCS trigger has an option to watch on changes in all dependent configurations.
Michael
Thanks. That worked.
Pwael