jueves, mayo 24, 2007

CruiseControl recargado - Semana 21

No quería, pero ya que estamos haciendolo en serio (lento pero en serio), hagámoslo ENSERIO.

Aunque tome más tiempo del que inicialmente había planeado (por varios motivos que no vale la pena detallar el proyecto ha avanzado lento, pero no está muerto).

Utilizar CruiseControl para el desarrollo del proyecto, la actualización en CodePlex y la generación de los builds diarios.

Y claro, eso significa cumplir la antigua deuda de documentar el proceso, de forma tal que se facilite el repetir la experiencia.

Paso 1: Download

Bajé los siguientes archivos:

Las instrucciones son bastante simples, ejecute y llene los valores que pide el programa.

Lo relevante es que al menos se debe contar con:

  • .NET Framework (1.0, 1.1 o 2.0).
  • ASP.NET Web Server, ergo, IIS con ASP.NET

Instalado esto, el sitio está disponible, aunque presenta una pantalla de error indicando que el servicio no está corriendo.

Asi que antes de hacerlo partir, es la hora de configurar el proyecto.

Paso 2: Configurar el proyecto

La instalación es simple, la configuración es un poco más compleja, pero en una primera etapa lo único que considera es la generación sin errores del ejecutable.

Por lo tanto al menos se necesita:

  • Enlace con CodePlex (para traer última versión)
  • Compilación del programa

El script de configuración resultante es el siguiente:

<cruisecontrol>
<
project name="RandomFlickr">
<
workingDirectory>C:\Documents and Settings\Alejandro\Escritorio\Personal\RandomFlickr</workingDirectory>
<
webURL>http://localhost/ccnet/</webURL>
<
triggers>
<
intervalTrigger seconds="3600" />
</
triggers>
<
sourcecontrol type="filesystem">
<
repositoryRoot>C:\Documents and Settings\Alejandro\Escritorio\Personal\RandomFlickr</repositoryRoot>
</
sourcecontrol>
<
tasks>
<
devenv>
<
solutionfile>FlickrList.sln</solutionfile>
<
configuration>Debug</configuration>
<
buildtype>Build</buildtype>
<
executable>devenv.bat</executable>
</
devenv>
</
tasks>
</
project>
</
cruisecontrol>

Se asume que la operación de update de CodePlex la hacemos manualmente, como mecanismo de "control de fuentes" definí FileSystem, es decir, cuando algo cambia, entonces se genera el proceso.


Y una vez que esto opera, el resultado es el siguiente:


Paso 3: Publicación del build diario


Falta automatizar este punto, es decir, la carga del build diario en CodePlex, para ir viendo los avances....


 


Comentarios:


Un par de comentarios respecto al CruiseControl.



  • Primero, los espacios en el path lo han complicado, por lo mismo reemplacé la llamada completa al compilador de Visual Studio por un bat. Hay que tener cuidado si hay nuevos parámetros en el bat.

  • Segundo, al menos se requiere configurar el WorkingDirectory, pues los valores por defecto no son muy efectivos.

 


Nota: En la medida de lo posible iré agregando aplicaciones, por lo menos el uso de NUnit, pero una vez que logre darle velocidad al proyecto y cuente con una versión que pueda considerarse 0.1 ;-).

1 comentario:

Paul dijo...

Que practico Post ;-)

Espero en el corto plazo poder replicarlo en mis proyectos