2008-09-10 4 views
7

OK, entonces todos sabemos que la creación diaria es el latido del corazón de un proyecto, pero ¿cuál es la mejor forma de automatizarlo?La mejor forma de automatizar la compilación diaria

Tenemos scripts perl que completan nuestra cartera de proyectos que incluye ClearCase, VS2005 (C++), Intel FORTRAN, configuración Inno. Usamos trabajos cron en UNIX para programar la compilación, y albergamos un servidor web Apache simple para ver y monitorear la compilación. En general, es bastante complejo, me gustaría saber cuál es la mejor solución fuera de la plataforma que usan las personas?

Y sí dije que FORTRAN no escapaba a veces, funciona, no tiene sentido hacer un gran proyecto de reimplementación para un código FEA probado que simplemente funciona.

Respuesta

3

Estamos en el proceso de implementación de CC.Net. Hasta ahora parece que se ajustaría bastante bien a tu modelo.

Fuera de la caja ofrece construcción automática, seguimiento de resultados y notificación. Sin embargo, no estoy seguro de cuán detallado es el monitoreo de construcción en progreso.

+0

He jugado con CC.NET, tuve que hacer una gran cantidad de ediciones de código fuente, los desarrolladores asumieron solo una VOB (base de datos de origen) en el complemento de ClearCase. – titanae

2

Usamos TeamCity - pero entonces es un simple desarrollo de C#/Java - ¿tal vez su canalización puede hacerse a través de scripts que puede manejar?

5

Una nueva que he escuchado es bastante astuta es hudson - también con soporte MSBuild.

+0

Lo usamos en un entorno de desarrollo C y es realmente útil. Aunque no puedo decir nada sobre la situación descrita y hudson, ofrece "compilaciones por lotes" para que pueda ejecutar comandos en el proceso de compilación. – Gregor

3

Hay muchas herramientas que manejan específicamente este:

Las herramientas tienen fuera de la caja de soporte para los tipos más comunes de construcción. Todos ellos también admiten algún tipo de proceso de compilación tipo "ejecutar este script".

Al final, debe usar las mejores herramientas de compilación (MSBuild, Ant, Maven, Make, ...) donde pueda y llenar las lagunas de las herramientas más antiguas con scripts personalizados. La compilación automatizada solo puede invocar estos en el orden correcto.

1

CC.NET es muy potente. Lo usé y estaba muy feliz por eso. Incluso el icono de estado en la bandeja del sistema. Es un pequeño detalle, pero le da una buena visión general de la "salud" del proyecto. Inmediatamente te sientes motivado para arreglar las pruebas cuando lo ves rojo.

Ahora usamos una serie de guiones autococidos. Como escribimos Python, la compilación no existe, por lo que el único problema es ejecutar las pruebas.

0

Sé que esto es una pregunta muy viejo, pero todavía está por venir en las búsquedas, por lo que alguien debe mencionar Jenkins - la continuación de código abierto de Hudson.

Desde el Jenkins wiki:

Entre esas cosas, Jenkins actual se centra en los dos puestos de trabajo siguientes:

  • proyectos de construcción/prueba de software de forma continua, al igual que climatizador o DamageControl. En pocas palabras, Jenkins proporciona un sistema de integración continua llamado fácil de usar, lo que facilita a los desarrolladores la integración de los cambios en el proyecto, y facilita a los usuarios obtener una versión nueva. La construcción automatizada y continua aumenta la productividad.
  • Supervisión de las ejecuciones de trabajos ejecutados externamente, como trabajos cron y trabajos de procmail, incluso aquellos que se ejecutan en una máquina remota. Por ejemplo, con cron, todo lo que recibe son correos electrónicos regulares que capturan la salida, y depende de usted mirarlos diligentemente y observar cuándo se rompió. Jenkins mantiene esos resultados y hace que sea fácil para ti notar cuando algo está mal.

El edificio fue construido con Java en mente, por lo que se integra bien con un montón de otras herramientas Java, pero se puede utilizar con cualquier lenguaje, incluyendo todos los mencionados por el PO.

Cuestiones relacionadas