2008-10-10 48 views
5

Ekip oluşturma işleminden ek takım oluşturma işlemlerini el ile nasıl tetiklersiniz? Örneğin, CC.Net'te bulunduğumuzda, bazı yapılar başarılı olsaydı başka yapılar tetiklenirdi. İkinci yapı, bu bileşeni kullanan projeler veya aynı bileşen için uzun, uzun süre çalışan test kitaplıkları olabilir.Bir TFS Ekip Oluşturmayı Manuel Olarak Tetikle

cevap

4

Bunu yapmanın bir yolu, TFSBuild.proj dosyanızın TfsBuild.exe komut satırını çalıştıracak bir AfterEndToEndIration hedefi olabilir, bu da diğer yapıları başlatır. (Ben test etmedim rağmen) ben

<Target Name="AfterEndToEndIteration"> 

    <GetBuildProperties TeamFoundationServerUrl="$(TeamFoundationServerUrl)" 
         BuildUri="$(BuildUri)" 
         Condition=" '$(IsDesktopBuild)' != 'true' "> 
     <Output TaskParameter="Status" PropertyName="Status" /> 
    </GetBuildProperties> 

    <Exec Condition=" '$(Status)'=='Succeeded' " 
      Command="TfsBuild.exe start /server:$(TeamFoundationServerUrl) /buildDefinition:&quot;Your Build Definition To Run&quot;" /> 

    </Target> 
3

Ben Martin vesilelerle bir dizi önerdi aynı şeyi yaptık (onun blog BTW, yararlı ötesinde) böyle bir şey düşünüyorum. Ancak, bunu yapmak için özel bir görev oluşturduğum kadar basamaklı yapıları (diğer bazı karmaşık kurallara dayanarak) tetiklemeye gerek duydum. Oluşturma komut dosyalarınızı güzel ve zayıf tutun ve size daha fazla esneklik ve kapsülleme olanakları sunar.

public override bool Execute() 
    {  
     IBuildDefinition[] buildDefinitions = BuildServer.QueryBuildDefinitions(ProjectName); 

     foreach (IBuildDefinition build in buildDefinitions) 
     { 
      if(build.Enabled) //I did a bunch of custom rules here 
      { 
       Log.LogMessage(String.Concat("Queuing build: ", build.Name)); 
       BuildServer.QueueBuild(build); 
      } 
     } 

     return true; 
    } 

Aaron Hallberg blog'undaki biraz daha iyi şeyler de var:

http://blogs.msdn.com/aaronhallberg/archive/2007/04/24/team-build-object-model-queueing-a-build.aspx

İlgili konular