¿Delphi Build Automation e Integración Continua viables usando MS Build solamente?
msbuild build-automation (3)
Estoy buscando implementar un sistema continuo de pruebas unitarias, algo que he escuchado llamar "smoketest" o "tinderbox", (un servidor de compilación que limpia las comprobaciones de control de versiones y las compilaciones completas de todo en un repositorio fuente dado o proyecto), y algo así como "integración continua" para equipos pequeños, con Delphi.
Estoy reacio a comprometerme con un producto comercial de "servidor de compilación" y espero poder hacer mucho de esto solo con el soporte de MS-Build que está integrado en Delphi.
Estoy buscando recursos, ideas y un lugar para comenzar. No sé cómo usar MS Build para este propósito. Steve Trevethen tiene una publicación en el blog que lleva a una pequeña discusión sobre la construcción de la línea de comando de dcc32, y algunos comentarios mencionan a ms-build que ha estado aquí desde delphi 2007. Estoy usando Delphi 2010. Estoy buscando orientación y visión, y experiencias, eso me dirá, ¿es este un camino razonable para bajar, y si no, qué camino debo seguir?
Descubrí que puede anular la Unidad (DCU) y el Directorio de salida EXE desde la línea de comandos de msbuild con / p: DCU_DcuOutput =. Tenga en cuenta que miré el XML dentro de mis archivos DPROJ para descubrir cómo anular las cosas.
Sin embargo, solo hace una marca, no una construcción, y / t: la reconstrucción no funciona (editar: sí, funciona bien en archivos DPROJ, pero no en GroupProjects).
Ojalá hubiera más documentación de MSBuild-con-Delphi en cualquier parte? La ayuda de MS-Build en la documentación del producto "Rad Studio 2010" muestra una o dos cosas sobre MS-Build pero es muy incompleto e incompleto.
Preguntas relacionadas:
Delphi 2010 usa MSBuild ya que es el motor de compilación principal. Eso significa que el IDE y la línea de comando hacen exactamente lo mismo. También significa que puede construir fácilmente proyectos existentes con la línea de comando. De hecho, nosotros en el equipo de Delphi hacemos esto exactamente todo el tiempo. No necesita preocuparse por los switches para el compilador en sí: el archivo DProj creado por el IDE
En el Menú de Inicio hay una línea de comando para usar MSBuild con un proyecto Delphi existente. Configura el entorno correctamente para que simplemente pueda llamar:
msbuild myproject.dproj
También puede llamar a configuraciones de compilación específicas desde la línea de comandos, usando el IDE para crear fácilmente dichas configuraciones usando parámetros de línea de comando para MSBuild.
Si desea crear el entorno usted mismo, puede ejecutar el archivo por lotes rsvars.bat para configurarlo. Ese archivo se puede encontrar en su directorio / bin, y debe estar disponible desde una línea de comando predeterminada.
El archivo contiene lo siguiente:
@SET BDS=<your BDS directory>
@SET BDSCOMMONDIR=C:/Users/Public/Documents/RAD Studio/7.0
@SET FrameworkDir=C:/Windows/Microsoft.NET/Framework/v2.0.50727
@SET FrameworkVersion=v2.0.50727
@SET FrameworkSDKDir=
@SET PATH=%FrameworkDir%;%FrameworkSDKDir%;%PATH%
@SET LANGDIR=EN
Por lo tanto, si desea crear su propia compilación de integración continua, puede administrar fácilmente su compilación Delphi utilizando MSBuild.
Dproj y groupproj son archivos de msbuild y puede echar un vistazo dentro de ellos. Las otras partes de la información se encuentran en la ruta de instalación de msbuild (C: / WINDOWS / Microsoft.NET / Framework / v2.0.50727). Allí encontrará varios archivos Borland. *. Targets.
Dentro de los scripts de msbuild puedes ver los diferentes objetivos nombrados con. Por ejemplo, groupfile contiene los objetivos Make, Clean y Build que puede especificar con el parámetro / t. Lo mismo ocurre con los archivos dproj. Los archivos dproj también tienen un objetivo ReBuild. Hace un Limpio y luego una Construcción. Si desea tener el mismo efecto para groupfile, puede especificar dos objetivos: / t: Clean; Build
También encontrará muchos parámetros en los que puede establecer con / p. Como por ejemplo Configuración para especificar la configuración o DCC_Quiet para ordenar a dcc32 que deje de generar espacios en blanco inútiles.
Entonces, hacer una compilación con la configuración de Release desde la línea de comando es este comando:
msbuild mygroup.groupproj /p:Configuration=Release /t:Build
descargo de responsabilidad: he visto los archivos msbuild de Delphi 2007. Posteriores versiones de Delphi podrían haber cambiado el nombre de los objetivos o parámetros. Solo eche un vistazo a los scripts de msbuild para saber cuál es cuál.
No estoy seguro de si esto es lo que necesita, pero tengo la configuración de CruiseControl.NET para realizar una integración continua - y pruebas de DUnit - para Delphi 2009. CCNET tiene un conjunto específico de tareas para MSBuild, y aparte de algunos problemas de configuración, Funciona perfectamente para mí.
Puedo hacerte saber que tengo que hacer para que funcione si lo necesitas.
marca