8/8/16

Automatizado Pasaje a Produccion con GxServer

Es fantástico poder automatizar los pasajes a producción que requiere de los siguientes pasos:

  1. Abrir la Kb deseada
  2. Descargar las modificaciones hechas por otros usuarios (automaticamente se descarguen desde el gxserver en la kb local)
  3. Setear el entorno de produccion
  4. hacer un build-all.


La documentación para hacer esto esta en la wiki de genexus en el siguiente enlace:

MSBuild Tasks

http://wiki.genexus.com/commwiki/servlet/wiki?3908,MSBuild+Tasks,

Para automatizar las tareas con gxserver hay que leer tambien;

Team Development MSBuild Tasks

http://wiki.genexus.com/commwiki/servlet/wiki?24612,Team+Development+MSBuild+Tasks,

Hice dos archivos, un archivo de configuracion (xml de msbuild) con cada una de las tareas a correr y un .bat que llama al msbuild con ese archivo de configuración

Las cosas a tener en cuenta son:

-El MsBuild esta en la carpeta C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\
-cada uno de los comandos se especifican en el .bat separados por ;
-Setear bien la ruta de la kb

Los problemas que tuve fueron los siguientes:

Abria la KB, decia que se conectaba al gxserver, pero al descargar los cambios me daba el siguiente mensaje: "Object reference not set..." y lo que pasaba es que habia que agregar la seguridad del gxserver (ServerUserName="local\nombre" ServerPassword="contrasenia")

Los archivos quedaron de la siguiente manera:

genexusserver.msbuild

<Project DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="C:\Archivos de programa\ARTech\GeneXus\GeneXusXEv2\GeneXus.Tasks.targets" />
    <Import Project="C:\Archivos de programa\Artech\GeneXus\GeneXusXEv2\Genexus.Server.Tasks.targets" />
    <PropertyGroup>
        <KBTemplate>csharp.kbtemplate</KBTemplate>
        <KBPath>c:\Models</KBPath>
    </PropertyGroup>
    <Target Name="AbreKb">
<OpenKnowledgeBase Directory="$(KBPath)\Kb" />
    </Target>
    <Target Name="BuildAll">
<BuildAll />
    </Target>
    <Target Name="SeteaProduccion">
<SetActiveEnvironment EnvironmentName="Produccion" />
    </Target>
    <Target Name="UpdateKbFromServer" DependsOnTargets="AbreKb">
<UpdateFromServer ServerUserName="local\nombre" ServerPassword="contrasenia" OutputFile="c:\msbuild\actualiza.txt" Preview="false"  />
    </Target>
</Project>




gxserver.bat

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\msbuild.exe /t:AbreKb;UpdateKbFromServer;SeteaProduccion;BuildAll genexuserver.msbuild


Espero que les sirva