Automatizando el BUILD ALL de la KB

El jueves de la semana que viene, estaremos hablando de Integración Continua con GeneXus, en la Mesa Redonda Virtual del GUG Montevideo.

La idea es contar experiencias de integrar los cambios que se hacen en el grupo de desarrollo varias veces al dia, de forma de poder detectar conflictos y errores lo mas rapido posible y lo mas cercano posible a su generación.

Para esto, es fundamental tener automatizada la tarea del BUILD ALL en GeneXus. Varias personas me han preguntado como puede hacerse esto.

GeneXus provee tareas MSBUILD para realizar este trabajo en forma batch

Una forma simple de usarlo es tener dos archivos:

KBBuildAll.cmd

set KBDir=C:\MODELS\EV3\MIKB
set dirGX="C:\Program Files (x86)\Artech\GeneXus\GeneXusXE3"
set ForceRebuild=true
dirFramework=C:\Windows\Microsoft.NET\Framework\v4.0.30319
echo ----------------------------------
set /p Cancel="Rebuild %KBDir% ? (PRESS Ctrl-C to CANCEL - Any Key to CONTINUE) "

%dirFramework%\MSBuild /nologo KBBuildall.msbuild /p:KBDir=%KBDir%;GXDir=%DirGx%;ForceRebuild=%ForceRebuild% /t:Rebuild



y KBBuildAll.msbuild
<Project DefaultTargets="Rebuild" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Import Project="$(GXDir)\Genexus.Tasks.targets" />
 <Import Project="$(GXDir)\Genexus.Server.Tasks.targets" />
 <Target Name="OpenKnowledgeBase">
    <OpenKnowledgeBase Directory="$(KBDir)"/>
 </Target>
 <Target Name="Rebuild" DependsOnTargets="OpenKnowledgeBase">
       <BuildAll ForceRebuild="$(ForceRebuild)" CompileMains="true" DetailedNavigation="false" />    
 </Target>
</Project>

Con esto se puede ejecutar en forma batch el proceso.

Se deja como tarea para el lector, generar un log y mandarlo por mail.

Comentarios

Entradas más populares de este blog

Aplicación monolítica o distribuida?

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.