2008-10-10 16 views
5

¿Cómo activaría manualmente compilaciones de equipo adicionales a partir de una compilación de equipo? Por ejemplo, cuando estábamos en CC.Net, otras compilaciones se activarían si ciertas compilaciones tuvieran éxito. La segunda compilación podría ser proyectos que usen este componente o bibliotecas de prueba adicionales de larga ejecución para el mismo componente.Activar manualmente un equipo TFS compilación

Respuesta

4

Una forma de hacerlo es crear un destino AfterEndToEndIteration para su archivo TFSBuild.proj que ejecute la línea de comandos TfsBuild.exe para iniciar otras compilaciones. Estoy pensando en algo como esto (aunque no lo he probado)

<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

que he hecho lo mismo que Martin sugirió en varias ocasiones (su blog es más que servicial, por cierto). Sin embargo, terminé necesitando generar compilaciones en cascada como esta (basadas en otras reglas complicadas) lo suficiente como para crear una tarea personalizada para hacerlo. Mantenga sus scripts de construcción agradables y le proporcione más flexibilidad y posibilidades de encapsulación.

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; 
    } 

Hay un poco más cosas buenas en el blog de Aaron Hallberg también:

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

Cuestiones relacionadas