Force snapshot dependencies to a specific version

We have a build chain (compile - test - release) defined, using snapshot dependencies. The compile phase exists out of 2 compilation steps, one for creating the application we will be testing and one for creating the test suit (test suite depends on the bins and tests depend on both).

What we would like to do is prevent teamcity from rebuilding tagged bins, but still be able to rebuild the test suit. I.e. force TeamCity to use a specific build of the application in the chain and use the latest changes of the test suite.
If I run a custom build and manually select snapshot dependencies, it works. However, it would be far more handier to for example pause the snapshot chain wrt compilation of the application (which is not done when with the current pause functionality, it pauses the triggers, but thus not prevent a snapshot dependency from scheduling a new build).

To put as a use case: I would like to be able to continue working on the tests while a release candidate of the application has been build and don't want the application to be rebuild every time a change occurs to the test suite.

Comment actions Permalink

Hi Hans,

It seems that dependencies should be configured like this:
application - test suite - tests - release,
if you do not want to rebuild application each time, then test suites should artifact depend from application and use for example "Latest successful" or "Latest pinned" build. Tests/release build configurations artifact depend from application and snapshot depend from test suite/tests.
Does it sound reasonable?

Comment actions Permalink

Hi Alina,

Please correct me if I'm wrong, but using "Latest successful" artifact dependencies does not garantee that the application build used to build the test suite is the same application build as is used for running the actual tests.
Also it does not garantee that in a none release usage case the latest application is build when triggering a test... (I know that this the opposite that I asked for, but there is a difference in using it while developing the application and while releasing)


Please sign in to leave a comment.