Specify a build per source control sub-directory

Dec 19, 2007 at 8:18 PM
I am unable to get the TFSBuildLab to initiate a build to a particular subdirectory. It seems that any subdirectory that I put in the TriggerPath still initiates the build for any check-ins under that team project. Is this the case?
Coordinator
Dec 19, 2007 at 9:51 PM
Jason,

TfsBuildLab only triggers the build, it relies totally on the builddirectories specified in your build scripts (altough the release that is gonna go out on friday will let you specify a list of available build servers). The TriggerPath is the path in source control that will cause a trigger to execute once a checkin is performed in that path.

In other work the trigger path releates to the path of the items in the changeset that will cause the trigger to run and the build directory is picked up from your build script. Does this make sense.

/Peter
Dec 20, 2007 at 1:22 PM
Edited Dec 20, 2007 at 1:24 PM
I appricate your quick response. As I read back though my original question, I see that I wasn't very clear. What I am trying to do is use TFSBuildLab to initiate builds based on where the check-in was made. We have 3 builds per team project that are named development, staging and production. When I check in code to $/TeamProject1/Development, I want the development build to run. Even when I put |$/TeamProject1/Development in the TriggerPath, any check-in to $/TeamProject1 will initiate the development build. I guess I could use Benjamin Day's solution (http://blog.benday.com/archive/2007/11/19/23167.aspx), but I was wondering if I could do this with TFSBuildLab seeing as I have it installed and running in our environment.
Coordinator
Dec 20, 2007 at 7:06 PM
Edited Dec 20, 2007 at 7:13 PM
Jason,

It seems that the issue would be a syntactical error in the trigger data (guess we could validate it but we never got around to do that) since what you are trying todo is exactly what TfsBuildLab does. If you look in the documentation around CI triggers you'll see an example like this one:

Trigger Data = \$/DEMO

It is important that you prefix the $ with a \ in other words \$ = $ this is due to the fact that the dollar sign is a keyword in RegExp. This should get your triggers working in your example you are using a | as a prefix. Let me know if this does the trick for you.

Ps. After reading it through another time it seems your problem is that the build is triggered to often? If this is the case and it still doesn't work for you after looking over the syntax in the trigger file could you please post a reply containing the branch structure of your project along with which build types you have and when they should trigger and finally the contents of the trigger table in the TfsBuildLab database.

Since what you are describing is exactly what we are doing we have several build types that correspond to various branches and the different build types are triggered based on the checkin path. Anyway let me know your config and we'll have you up and running in no time (I think ;).

/Peter