Estoy buscando una comparación de diferentes servidores de integración continua (CI) (especialmente centrados en .NET) y no pude encontrar ninguno.
Por lo tanto, me gustaría saber qué piensa sobre las diferentes soluciones disponibles, cuáles son los pros y los contras, cuáles son los requisitos de alojamiento y por qué CI Server XY es el servidor de su elección.
Estoy interesado en sus pensamientos sobre (siéntase libre de comentar sobre otros):
- Hudson
- CruiseControl
- CruiseControl.NET
- Teamcity
- CIFactory (utiliza CruiseControl.NET)
Los puntos de interés son:
- Configuración (fácil, flexible)
- Integración con SCM (especialmente DSVC como git o hg)
- Integración con sistemas de compilación (MSBuild, NAnt, Rake)
- Integración con marcos de prueba
- Integración con Source Anaylsis (Simian, NDepend, FxCop, NCover, etc.)
- WebInterface / Dashboards
- Requisitos de infraestructura
.net
comparison
continuous-integration
Peter Mortensen
fuente
fuente
Respuestas:
Ninguna pregunta como esta está completa sin un enlace a la gran Matriz de características de CI (Archivo Web) que enumera casi todas las opciones de CI que existen.
Pero creo que es importante anticipar el alcance de lo que desea incluir en su sistema de CI. ¿Va a ser solo compilaciones o traerá otros elementos como análisis estático, dependencias entre proyectos, implementaciones, pruebas funcionales, etc.? Para ayudar con esa planificación, creé este gráfico mural sobre los elementos de la CI empresarial (PDF ; no se requiere registro). No dejes que la "palabra electrónica" te desanime; Me refiero a cosas más allá de la construcción básica de CI de retroalimentación rápida. :)
No es una herramienta específica, pero enumera una variedad de prácticas que podría considerar mientras se encuentra en las etapas de planificación / evaluación.
fuente
Nada útil en:
EDITAR : A señalado por Jonik en un comentario, me perdí ¿Cuál es la diferencia entre Hudson y CruiseControl para proyectos Java? y ¿Cómo y por qué configuro una máquina de compilación C #? . Encontrarás respuestas muy interesantes. En otras palabras, creo que todo lo que estás buscando ya está en Stack Overflow.
fuente
TeamCity tiene una característica maravillosa de permitir al desarrollador realizar una compilación personal antes de comprometerse. ¡Muy útil!
CruiseControl.NET es el abuelo del grupo y, por lo tanto, está un poco anticuado visualmente, etc. Como ha existido durante un tiempo, Google sabe cómo solucionar muchos problemas con los que se encontrará.
Por estas razones (entre otras), utilizo CruiseControl.NET en el trabajo y TeamCity en casa y en mi vida de código abierto :)
fuente
Soy un usuario de CruiseControl.NET desde el principio. Mis equipos lo usan en el trabajo y yo lo uso en casa para proyectos personales.
En particular, CruiseControl.NET me permite ejecutar todo el proceso de CI: compilaciones, actualización de versiones, pruebas de integración y unidad, archivo de la fuente o versión candidata, cobertura de código e incluso implementación en nuestro sistema de prueba en el trabajo. Es altamente personalizable, funciona bien con MSBuild y NAnt, e incluso tenía una arquitectura de complemento extensible.
Prácticamente hace todo lo que necesito.
La mayor desventaja: la configuración a veces es una molestia y puede llevar tiempo. Pero una vez hecho, está hecho, y como decía otro cartel, me encanta ver la señal de "compilación exitosa" porque sé que no solo funcionó la compilación en sí, sino que también mi unidad y las pruebas de integración se ejecutaron con éxito.
fuente
Team Foundation Build es una opción y además interactúa muy bien con Team Foundation Server. Es gratis siempre que tenga la licencia de TFS.
fuente
Usamos Hudson en el trabajo. La razón principal es que es muy fácil de configurar. Puede ejecutar directamente la guerra (es un jar ejecutable) o implementarla en cualquier contenedor de servlets. Y estás listo para empezar. Además, Hudson admite muchas herramientas y es extensible a través de su sistema de complementos.
fuente
Cambiamos de CruiseControl.NET a TeamCity principalmente debido a la facilidad de configuración. TeamCity también tiene más funciones, pero la razón principal fue que una interfaz de usuario web agradable es más simple de usar que los archivos de configuración XML.
EDITAR: La mayoría de las tareas que TeamCity hará de forma inmediata; cuando es necesario usamos NAnt.
fuente
CruiseControl.NET: puede ser un poco complicado de configurar (al igual que la mayoría de los sistemas de CI), pero vale la pena continuar con él. Actualmente lo tengo configurado para ejecutar pruebas unitarias al completar las compilaciones y para producir instaladores de Wix a pedido. Como dijo Dan, parece un poco anticuado, pero eso no importa, ya que le brinda mucha información que es fácil de obtener y de leer.
Una cosa: asegúrese de que todos sus desarrolladores tengan CC Tray instalado, ejecutándose y apuntando a sus compilaciones. Es una gran sensación tener "Otra compilación exitosa" en su bandeja de notificaciones.
fuente
Estamos usando ccnet en el trabajo, lo cual está bien para la mayoría de nuestras necesidades (tenemos alrededor de 50 compilaciones automatizadas), pero se necesita una persona para ajustar y arreglar a tiempo completo.
Si está empezando desde cero, eche un vistazo a Bamboo. Lo hemos investigado y parece realmente prometedor, pero no se ajusta completamente a nuestras necesidades y hemos invertido demasiado tiempo en ccnet para cambiar a Bamboo ahora.
Saludos,
Sebastiaan
fuente
Heredé un servidor luntbuild. No es una buena opción para un proyecto .NET. Si descubre que está recurriendo constantemente al servidor de compilación para ejecutar tareas genéricas de línea de comandos, entonces algo anda mal. Un buen servidor de compilación tenía una buena comprensión de la salida de las pruebas unitarias y las tareas de msbuild como más que comandos opacos que se ejecutarían cuando cambia el sistema de control de fuente.
Disfruto migrar a Team City.
fuente
Soy bastante nuevo en la escena de CI y he estado concentrando mis esfuerzos en CruiseControl.NET, usando NAnt e Ivy para construir mis proyectos .NET.
Descubrí que CruiseControl.NET es muy adaptable a muchas otras herramientas, como NCover / NUnit / etc. Todos se conectan a esto e integran los resultados para un proceso de construcción combinado.
Examinaré TeamCity en un futuro cercano por mi propio interés, pero creo que CruiseControl hace un buen trabajo, ¡pero solo tan bien como sus scripts de compilación! Si estos son pantalones, entonces solo se puede esperar que sus construcciones sean tan buenas.
Pero en resumen, CruiseControl.NET es una buena solución, pero aún no he descubierto qué tan buena es la competencia en comparación.
fuente
Estamos contentos con Hudson . No tengo nada con qué compararlo, pero fue sencillo de configurar y poner en marcha. En este momento, solo compila proyectos Win32 C ++ y un instalador, pero estamos migrando a Linux y debería funcionar con eso también.
Obtiene repositorios de Subversion sin problemas y envía alertas por correo, etc. Nos gusta hasta ahora. Nuevamente, tenemos una experiencia limitada con las comparaciones.
fuente
He estado trabajando con CruiseControl.NET, TFS 2012 y TeamCity 7.x durante varios años y creo que TeamCity es el MEJOR debido a su facilidad de uso, interfaz de usuario cómoda e informativa y otras características interesantes como dependencias de compilación y muchas más. Simplemente funciona, me encanta.
fuente