Buddy build Webservice.

Jan 8, 2009 at 7:21 PM
What is the purpose of the Buddy Build Webservice? Is it mandatory to install while using pre-checkin validation tool?
Coordinator
Jan 8, 2009 at 7:30 PM
No, installing the Buddy Build Web Service is not mandatory for the functionality of the tool. It is required however when you have a team where developers are not given the "Administer a Build" privilege, which is the typical scenaio in a lot of teams due to the fact that giving the "Administer a Build" privilege to everyone will allow them to be able to delete builds, etc... For those scenarios, you can use the web service where you run it under an account that has the "Administer a Build" privilege which in turn will run the builds for you. It acts as a proxy to the build system.

The reason "Administer a Build" is needed in the Buddy Build scenario is because it relies on passing MSBuild paramters to a build when queuing it. Even though the MSbuild Paramters text box is available in the "Queue a Build" dialog in Team Build, you can only use it if you have the "Administer a Build" privilege.

Hope this helps.
Jan 9, 2009 at 9:10 PM
Thanks for the reply. I followed the steps mentioned in the installation guide for the buildwebservice, but it gives the Authorization Error when trying to invoke a build. 

You are not authorized to view this page

You do not have permission to view this directory or page using the credentials that you supplied.
Coordinator
Jan 9, 2009 at 9:49 PM
Can you tell me nore about your web server? what OS? Windows 2008? What architecture? x86, x64, ia64?
Jan 13, 2009 at 8:56 PM
Windows Server 2003. When I am trying to invoke Queue Buddy Build from localhost as well as outside, I am getting error:

System.Exception: Integration::QueueBuddyBuild: ErrorMessage: Integration::QueueBuddyBuild: You are not authorized to call this service. If you are using the VS2008 add-in and this error persists, please ask your administrator to set DisableMagicStringVerification to 'true' in web.config.
   at BuddyBuildIntegrationWebService.BuildService.QueueBuddyBuildEx(String tfsHostName, String teamProjectName, String buildDefinitionName, String buildAgentName, String priority, String msbuildCommandLinePropertyValue, String requestedFor, String dropLocation)
   at BuddyBuildIntegrationWebService.BuildService.QueueBuddyBuild(String tfsHostName, String teamProjectName, String buildDefinitionName, String buildAgentName, String priority, String msbuildCommandLinePropertyValue, String requestedFor) 




I
changed DisableMagicStringVerification to 'true' in web.config. But still the problem persists.
Coordinator
Jan 13, 2009 at 9:25 PM
Regarding the DisableMagicStringVerification setting, there was a bug where this setting was not honored in the web service's code. This has been fixed for the upcoming release 1.0.0.66. There is also a bug in the code that initializes the credentials sent to the web service from the Visual Studio add-in. Since release 1.0.0.66 is still being tested, we have not made it the default release yet.

If you would like to try it out and see if it solves your problem, please download the MSI's from the following URL:
http://www.codeplex.com/BuddyBuild/Release/ProjectReleases.aspx?ReleaseId=21742

Please let us know if this helps at all and whether or not it solves your problem.
Coordinator
Jan 16, 2009 at 2:16 PM
FYI, the newest release, 1.0.0.66, resolves the issues described in this thread.
Sep 16, 2009 at 6:39 AM

The reason "Administer a Build" is needed in the Buddy Build scenario is because it relies on passing MSBuild paramters to a build when queuing it. Even though the MSbuild Paramters text box is available in the "Queue a Build" dialog in Team Build, you can only use it if you have the "Administer a Build" privilege.

So, if the team members (without the "Administrator a Build" permission) never needs to pass MSBuild parameters from the textbox, can they use the TFS Check-in Validation Tool to check in without going through the Buddy Build Web Services?

 

 

Coordinator
Sep 17, 2009 at 4:37 AM

No, you can't. The reason is that in order to use the tool to check in pending changes, the tool needs to shelve the changes (or use a shelveset that you provide) and run a buddy build against it to validate it before it can check it in. That means the tool needs to pass the shelveset along with other MSBuild parameters to Team Build. That's why in order to do that without a proxy in the middle, you need to have the 'Administer a Build' privilege.

If you are asking because you are running into problems configuring the buddy build web service, please let me know and I will be glad to help.