with tutorial framework español djangoproject desde con cero applications continuous-integration build

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.



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.



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.



Una nueva para mí que he escuchado es bastante ingeniosa es hudson , también con soporte MSBuild.


Usamos TeamCity , pero luego es un simple desarrollo de C # / Java. ¿ Tal vez su canalización puede realizarse a través de scripts que puede manejar?