Possible to tell TeamCity that artifacts live in source-control?

I have two svn repositories - Products, and Supporting.  Supporting/trunk/library/** contains a bunch of directories containing tools and libraries that Products build-configurations need.  Products/trunk/{product-name} contain the different products that we are writing.

I have set up 2 projects:
* Supporting has one configuration that does nothing but exit with success (since I rely on the agent to update from svn)
* Products-Foo has one configuration that builds Foo, and wants to depend on Supporting.

What I am trying to achieve is:
* Check out Products/trunk/{product-name}
* Depend it on Supporting/trunk/library contents
** I want to trigger a build of each {product-name} when a change to supporting/trunk/library is made
*** I surmise that a build-configuration -> build-triggering -> dependency is what I want here - that's fine and works
** I want to tag on each successful build
*** Easy enough.
** I want to have repeatable builds, such that if I want to trigger a build of a {product-name}, it will use the same (or, the specified) version of Supporting/trunk/library that it used the original time
*** I'm not sure what to do here - it seems like a waste to have Supporting/trunk/library be artifact'd, since all the DLLs and so on are already stored in SVN - ideally, I would want TeamCity to delegate the artifact'ing to svn, so it just does an svn-update on Supporting/trunk/library.

Is it possible to define an artifact dependency as a pull from svn?  Or similar?

Comment actions Permalink

It's also not clear whether I want a snapshot dependency, or an artifact dependency, or both.

Forgot to mention - my Products build-configs are set up to ignore externals (because normally, for developers, there's an svn:external to pull out the supports for convenience during 1st-checkout).

Comment actions Permalink

Gah.  I should mention that my desire here is increased performance.  An svn-update is far quicker than a pull of all the artifacts, since it's going to be pulling diffs rather than the full 250Mb of supports.

Comment actions Permalink

If your tools are in the Subversion you can create separate VCS root for tools and attach it to your Product build configuration. If needed you can use checkout rules to place your tools into the required subdirectory. Separate build configuration which does nothing except publishing of artifacts to TeamCity while they can be easily accessed from the Subversion indeed might be overkill.


Please sign in to leave a comment.