continuous-integration - framework - tutorial django
La mejor forma de automatizar la creación diaria (9)
OK, entonces todos sabemos que la compilación diaria es el latido del corazón de un proyecto, pero ¿cuál es la mejor forma de automatizarlo?
Tenemos scripts Perl que envuelven nuestro pipeline 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 reimplantación de un código FEA probado que simplemente funciona.
CC.NET es muy poderoso. 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.
Estamos en el proceso de implementar CC.Net. Hasta ahora parece que se ajustaría bastante bien a tu modelo.
De fábrica, ofrece construcción automatizada, seguimiento de resultados y notificación. Sin embargo, no estoy seguro de cuán detallado es el monitoreo de construcción en progreso.
Este es el mejor recurso que encontramos para ayudarnos a elegir una herramienta de integración continua. Hemos evaluado 5 o 6 herramientas en esta página.
http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix
Hay muchas herramientas que manejan específicamente esto:
Las herramientas tienen soporte listo para usar para los tipos de compilación más comunes. 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.
He tenido éxito usando Visual Build Pro .
Sé que esta es una pregunta muy antigua, pero todavía está apareciendo en las búsquedas, por lo que alguien debería mencionar a Jenkins , la continuación de código abierto de Hudson.
De la wiki de Jenkins :
Entre esas cosas, Jenkins actual se enfoca en los siguientes dos trabajos:
- Creando / probando proyectos de software continuamente , al igual que CruiseControl 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 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.
Originalmente fue construido con Java en mente, por lo que se integra bien con muchas otras herramientas de Java, pero puede usarlo con cualquier idioma, incluidos todos los mencionados por el OP.
Si está trabajando con Visual Studio, asegúrese de consultar Team Foundation Build para ver si se adapta a su situación.
Parece que la publicación de blog de Buck Hodges en la versión VS 2008 también es un buen recurso.
Una nueva para mí que he escuchado es bastante ingeniosa es hudson , también con soporte MSBuild.