2011-12-09 14 views
3

私は見つけることができませんが、これは以前に尋ねられたはずですが、私はさまざまなブランチでビルドを設定しようとしています。ワークスペースマッピングやブランチロケーションソリューションファイルのように、私がメジャー番号またはマイナー番号をインクリメントするときに起こるのは、私がコードを分岐するときに達成しようとしているのは、コードが分岐しているときです。ソリューションファイルとバージョンファイル。tfs 2010のビルド定義を生成する

答えて

2

バージョンコントロールでブランチ操作を実行するブランチを作成し、一致するビルド定義を作成するカスタムユーティリティを作成することをお勧めします。以下は、TFS APIを使用してビルド定義を作成するためのコードです。

また、TFSイベントサービスからCheckInEventにサブスクライブするWebサービスを作成し、詳細を調べて分岐操作かどうかを確認し、プログラムからビルド定義を作成することができます。コードの下

は臆面もなく、この偉大なブログ記事からコピーされました:http://geekswithblogs.net/jakob/archive/2010/04/26/creating-a-build-definition-using-the-tfs-2010-api.aspx

string teamProject = "TeamProjectName"; 
string buildController = "BuildControllerName"; 

TfsTeamProjectCollection server = new TfsTeamProjectCollection(new Uri("http://<tfs>:<port>/tfs")); 
server.EnsureAuthenticated(); 
IBuildServer buildServer = (IBuildServer)server.GetService(typeof(IBuildServer)); 

var buildDefinition = buildServer.CreateBuildDefinition(teamProject); 
buildDefinition.Name = "TestBuild"; 
buildDefinition.Description = "description here..."; 

buildDefinition.ContinuousIntegrationType = ContinuousIntegrationType.Individual; 


buildDefinition.Workspace.AddMapping("$/Path/project.sln", "$(SourceDir)", WorkspaceMappingType.Map); 
buildDefinition.Workspace.AddMapping("$/OtherPath/", "", WorkspaceMappingType.Cloak); 

buildDefinition.BuildController = buildServer.GetBuildController(buildController); 
buildDefinition.DefaultDropLocation = @"\\SERVER\Drop\TestBuild"; 

//Get default template 
var defaultTemplate = buildServer.QueryProcessTemplates(teamProject).Where(p => p.TemplateType == ProcessTemplateType.Default).First(); 
buildDefinition.Process = defaultTemplate; 

//Set process parameters 
var process = WorkflowHelpers.DeserializeProcessParameters(buildDefinition.ProcessParameters); 

//Set BuildSettings properties 
BuildSettings settings = new BuildSettings(); 
settings.ProjectsToBuild = new StringList("$/pathToProject/project.sln"); 
settings.PlatformConfigurations = new PlatformConfigurationList(); 
settings.PlatformConfigurations.Add(new PlatformConfiguration("Any CPU", "Debug")); 
process.Add("BuildSettings", settings); 

buildDefinition.ProcessParameters = WorkflowHelpers.SerializeProcessParameters(process); 

buildDefinition.RetentionPolicyList.Clear(); 
buildDefinition.AddRetentionPolicy(BuildReason.Triggered, BuildStatus.Succeeded, 10, DeleteOptions.All); 
buildDefinition.AddRetentionPolicy(BuildReason.Triggered, BuildStatus.Failed, 10, DeleteOptions.All); 
buildDefinition.AddRetentionPolicy(BuildReason.Triggered, BuildStatus.Stopped, 1, DeleteOptions.All); 
buildDefinition.AddRetentionPolicy(BuildReason.Triggered, BuildStatus.PartiallySucceeded, 10, DeleteOptions.All); 

buildDefinition.Save(); 
関連する問題