Partial build chain failure?


I have just started to use TC (v4.5.5) on a project, and I am trying to work out a solution to a particular problem. Unfortunately my search engine mojo appears to have deserted me, so any guidance gratefully received.

We want to pipeline our projects - a fast build/unit test 'gateway' project followed by a series of increasingly time consuming test projects. Standard stuff. It's a busy project, so we also want to be able to guarantee the versions that the chains have run against so we can release without needing to code freeze. To me, this sounds exactly like a snapshot dependency. But....

Given Project A is triggered from SVN, it depends on Project Unit, and let's say someone checks in a duff compilation. Unit kicks off and fails but so does Project A. Which is fine if everything is nice and quick to recover, but not if Project A takes 4 hours (just don't ask...).

So what we want is snapshot dependency, but only showing the section of the build chain that failed (in this example Project Unit).

Can TC build chains do this? Have I missed something obvious?



Comment actions Permalink

Just to clarify a bit further, it looks like what I'm looking for is an option to "Don't fail this build if the dependency fails, but don't trigger it either".

It's entirely possible that build chains are not the right answer here, and that manual artefact management is the solution (Project Unit builds an artefact, stores it, then triggers Project A to test the artefact).

Comment actions Permalink

Solved it.

Each project needs both trigger dependency and snapshot dependency on its dependent project.The dependent project monitors version control for changes, nothing else does.

Project 'Unit Test' monitors SVN for changes.
Downstream project 'Acceptance Test' has a trigger and snapshot dependency on 'Unit Test'.

If Unit Test passes, then it kicks off Acceptance Test using the same SVN version.
If Unit Test fails, it never starts Acceptance Test, so it stays green (but it does show up as having 'pending changes').

So we now fail fast, and recover fast, and can easily see what projects ran against a given SVN version.

Now, can I assign myself those points since I solved it?


Please sign in to leave a comment.