Tenemos nuestro código fuente almacenado en repositorios de horno/Mercurial; utilizamos MSBuild para construir nuestro producto y tenemos Pruebas Unitarias que utilizan MSTest (Pruebas unitarias de Visual Studio).Recomendaciones para la integración continua de Mercurial/Kiln + MSBuild + MSTest
Qué soluciones existen para implementar una máquina de integración continua (es decir, máquina de compilación).
Los requisitos para ello son:
- Una acumulación debe ser expulsado de cuando sea necesario (es decir, el código ha cambiado en los repositorios que nos interesan)
- Antes de la construcción actual, la última versión de la fuente código debe ser adquirido desde el repositorio que estamos construyendo desde
- la construcción debe construir todo el producto
- la construcción debe construir todo Pruebas de Unidad
- la construcción debe ejecutar todas pruebas unitarias
- Se debe enviar un resumen de éxito/falla después de que la construcción haya finalizado; esto debe incluir información sobre la construcción en sí, pero también sobre qué Pruebas unitarias fallaron y cuáles tuvieron éxito.
- El resumen debe contener los conjuntos de cambios en esta compilación que aún no estaban en la compilación exitosa anterior (!)
- El sistema debe ser configurable para que pueda compilarse desde múltiples ramas (/ Repositorios).
Lo ideal es que este sistema se ejecute en una sola caja (nuestro producto no es tan grande) sin ningún componente de servidor.
¿Qué soluciones hay actualmente disponibles? ¿Cuáles son sus pros/contras? De la lista anterior, ¿qué se puede hacer y qué no se puede hacer?
Gracias
Me deshice de CruiseControl para TeamCity y todo mi equipo está muy satisfecho con el cambio. Usamos scripts de MSBuild para los proyectos y NUnit para las pruebas. Desarrollamos principalmente aplicaciones C++ y C# – T33C