Working with multiple VCS roots and branches

Hi!  I've been having an issue that I have been unable to resolve as of yet.  We have a pretty standard basic application setup broken in to different layers.  For this post, I'm just going to stick with an API and a Front-End.  The API and Front-End are both in their own Mercurial repositories.  Right now we have a continuous integration project that is set up to build all active branches for both the API and the Front-End.  We use MSBuild to build artifacts locally, then a powershell script to upload to S3.

We also have a production deployment project, that has both of the CI configs as snapshot dependencies, and the two different VCS roots that just look at the default branch.  This deployment project is basically a powershell script that uses AWS CloudFormation to push out zips from S3 to appropriate instances.

Both of those projects work great, so now here's where I'm having an issue:  I want to set up a UA project, that will have snapshot dependencies to the CI build configs, and be able to stand up testing environments(using AWS CF again, but that's just the implementation).  The problem I'm having is being able to associate feature branches with other feature branches.  Currently, I can only associate a Front-End feature branch with the default API branch, and the analog is true with an API feature branch.  Here's a screenshot:
team-city-branch-ua-question.png
In each of the rows in this screenshot, you're seeing this basically:

API snapshot Front-End snapshot
default default
api-branch default
default front-end-branch


I'm wanting to fill in the last row of that table, namely where I can build (api-branch, front-end-branch). I have tried numerous things to accomplish this, with no success as of yet.  The attempts include:

  • Creating a copy of the UA build config, and modifying the VCS roots specific to the new copy.  Despite putting "front-end-branch" and "api-branch" in to the respective default branch names in each VCS roots, the build once run will STILL use the default branch instead of the named branches.
  • Using artifact dependencies - I thought perhaps since you could specify the branch in this dependency type, I could kludge it with this, but it would not work due to my S3 storage of artifacts.


I'm essentially to the point now where I'm going to have to artificially parameterize the builds with build numbers and branch names manually, which is inelegant, but functional.  I'm just hoping some of you might be able to help me out with this to show me where I'm going wrong.

Thanks!

Please sign in to leave a comment.