He trabajado en y con herramientas de Integración Continua desde la que generó Cruise Control (versión java). Los he probado casi todos en algún momento. Nunca he sido más feliz que con TeamCity. Es muy simple de configurar y aún proporciona una gran cantidad de energía. La página de estadísticas de compilación que muestra los tiempos de compilación, el recuento de pruebas unitarias, la tasa de aprobación, etc. es muy agradable. La página de inicio del proyecto de TeamCity también es muy valiosa. Para proyectos .NET simples, puede decirle a TeamCity dónde está la solución y qué ensamblajes tienen pruebas y eso es todo lo que necesita (aparte de la ubicación del control de código fuente). También hemos utilizado algunos scripts complicados de MSBuild con él y hemos terminado el encadenamiento de compilación. También pasé por dos actualizaciones de TeamCity y fueron indoloras.
CruiseControl.NET también funciona bien. Es más complicado de configurar, pero tiene un historial más largo, por lo que es fácil encontrar soluciones en la web. Dado que CruiseControl.NET es de código abierto, también tiene la opción de agregar o cambiar lo que quiera. Había usado CruiseControl.NET desde su lanzamiento y escribí algunos de los primeros códigos para cc.tray (afortunadamente reescrito por alguien que sabía más).
Cruise, de ThoughtWorks, también se ve bastante bien, pero no veo una razón convincente para que cambie. Si estuviera comenzando un nuevo proyecto, podría intentarlo, pero TeamCity ha hecho un gran trabajo al simplificar las cosas simples mientras que las complejas son bastante sencillas.
Editar: Acabamos de actualizar a TeamCity 5.0 hace unas semanas y fue otra actualización indolora. Nos permitió aprovechar las capacidades mejoradas de cobertura de código y el soporte GIT. Ahora también estamos utilizando la compilación personal y las funciones de confirmación probadas previamente que han estado disponibles durante un tiempo. Pensé que debería actualizar la respuesta para indicar que TeamCity sigue mejorando y sigue siendo fácil de usar.
Yo era / soy un gran fan de CC.NET. Actualmente tenemos 5 proyectos en CruiseControl y funciona muy bien. Escribir archivos de configuración con la mano puede ser doloroso, pero está bien.
Pero .
Después del screencast de Kona: Integración continua y mejores pruebas unitarias (el primer 1/3 sobre TeamCity) también comprobaré TeamCity. Me encanta el panel de prueba de unidad integrado y la interfaz de configuración.
Creo que todos deberían ver este video antes de elegir CC.NET o TeamCity.
PD: Espero que también haya un valioso video CC.NET en la red.
fuente
Mi servidor de CI favorito es, con mucho, Hudson. Fácil de configurar y mantener, muchos gráficos agradables para mostrar tendencias a desarrolladores y no desarrolladores, y gratis.
Actualmente estoy usando TeamCity en un proyecto y en general estoy satisfecho con él, pero muchos de los gráficos que genera no son especialmente útiles y es más complicado de configurar que Hudson.
Dicho esto, TeamCity es poderoso, gratuito para muchos usos y tiene una característica increíble: Remote Run. Puede "confirmar previamente" su verificación directamente desde IDEA o Eclipse, ejecutar una o más configuraciones de compilación en el servidor TeamCity y solo confirmar los cambios si la compilación es exitosa (por ejemplo, compila y todas las pruebas pasan).
Dado que podría tener TeamCity y Hudson en funcionamiento en unas pocas horas, podría valer la pena tomarlos y ejecutarlos uno al lado del otro, junto con cualquier otro (como CruiseControl) que se le ocurra. Si no puede soportar un servidor de CI rápidamente para hacer una comparación lado a lado, entonces al menos tiene un punto de datos para facilitar la instalación y / o configuración.
fuente
Los he usado con éxito en diferentes proyectos. Desde un punto de vista administrativo y de configuración, Team City es mucho más fácil de tratar. No tienes que hackear con archivos .config como lo haces con CC y la configuración es muy sencilla. Como no tienes muchos proyectos, recomendaría Team City en lugar de CC hasta que llegues al punto en que Team City cuesta $$.
fuente
He utilizado tanto CC.net como TeamCity. Tengo la tarea de configurar e instalar TeamCity para mi organización (5 desarrolladores). Nuestra organización utiliza algunas prácticas y herramientas poco comunes (al menos, para organizaciones de nuestro tamaño), como Perforce para el control de código fuente y múltiples agentes de compilación que se ejecutan en sistemas operativos heterogéneos, lo que causó algunos problemas de configuración inicial. Sin embargo, el soporte por correo electrónico fue absolutamente de primera categoría para configurar todo. Recibí respuestas a mis preguntas tontas en literalmente minutos.
La interfaz es intuitiva y receptiva, además de estar repleta de funciones. El producto parece muy caro. La configuración es fácil y la interfaz web es lo suficientemente inteligente como para actualizarse sin necesidad de reiniciar los servicios del agente o servidor, o incluso actualizar la página.
Siento que estamos usando casi todas las funciones avanzadas del producto y no hemos encontrado ningún error hasta ahora. Integración de Ndepend, scripts NAnt anidados, etiquetado de versiones Perforce, lo que sea, lo estamos haciendo.
Recomiendo ampliamente TeamCity a cualquiera que busque un servidor de integración continua, o cualquier servidor de compilación, de verdad.
fuente
Sin querer lanzarte herramientas alternativas :-)
Hudson es una gran alternativa de código abierto, he usado CC y CC.net, y confieso que creo que son herramientas fantásticas. Estoy pensando en cambiarme a hudson, ya que parece mucho más fácil de configurar y mantener.
https://hudson.dev.java.net/
fuente
Asegúrese de que el sistema que decida se adapte a la cantidad de proyectos que necesitará manejar ...
Utilizo CruiseControl.Net pero no lo recomendaría para construir muchos proyectos ... Tengo una disposición (posiblemente un poco extraña) en la que tengo muchas bibliotecas estáticas de C ++ que compongo en aplicaciones. Cada biblioteca depende de otras bibliotecas y las aplicaciones incorporan un conjunto de bibliotecas y compilan. Cada lib tiene un conjunto de pruebas. Cada aplicación tiene un conjunto de pruebas. Construyo para 5 compiladores y variaciones de plataformas (Windows).
Lo primero que encontré fue que los activadores del proyecto de CC.Net no son realmente lo que necesita y el activador múltiple no funciona bien con los activadores del proyecto. La forma en que funcionan los activadores del proyecto (utilizan la comunicación remota para conectarse al servidor donde está almacenado el proyecto (incluso si es un proyecto que es administrado por la misma instancia de CC.Net) y luego extraen todos los proyectos de ese servidor y buscan en la lista secuencialmente buscando el proyecto que le interesa ...) significa que no escalan bien. Una vez que supere una cierta cantidad de proyectos, encontrará que CC.Net está tomando la mayor parte de la CPU para su máquina de compilación.
Por supuesto, es de código abierto, por lo que puede solucionarlo ... Y estoy seguro de que está bien para una pequeña cantidad de proyectos no interdependientes.
Para obtener más detalles sobre los problemas que tuve y algunos parches para CC.Net, consulte aquí. http://www.lenholgate.com/archives/cat_ccnet.html
fuente
Recientemente configuré cc .net. Es una gran aplicación pero requiere un poco de paciencia. Estarás editando muchos archivos de configuración en el bloc de notas :)
Ha existido por un tiempo, por lo que está bien respaldado y normalmente puedes encontrar a alguien que haya hecho lo que quieres hacer antes. La interfaz web también es .net, lo que fue una ventaja para nosotros, ya que somos una tienda de Microsoft.
No he utilizado TeamCity, pero he escuchado bastantes recomendaciones y se ve bonito.
fuente
Tuve una experiencia configurando y ejecutando CruiseControl (versión Java) en Linux durante mi empresa anterior. Como sugiere la mayoría de la gente, no es la cosa más trivial de configurar. Debe comprender su marco para poder crear la configuración viable / manejable. Sin embargo, una vez superado ese obstáculo, creo que CruiseControl es lo suficientemente flexible como para permitirle hacer diferentes tipos de cosas para adaptarse a diferentes escenarios.
Además, la documentación de CruiseControl, su página wiki también tiene información útil.
No tengo una experiencia directa con TeamCity. Aunque su función de confirmación previa a la prueba parece lo suficientemente interesante.
La otra herramienta CC a la que podrías darle un vistazo es Bamboo de Atlassian. Es mucho más fácil de configurar y la interfaz es más agradable. Sin embargo, no es tan flexible como lo que ofrece CruiseControl.
fuente
Una tercera opción que quizás quieras considerar: el crucero de Thoughtworks. Está construido sobre CruiseControl, pero ofrece muchas más funciones, configuración más sencilla, etc. No es gratis (ni de código abierto).
http://studios.ilsttworks.com/cruise-continuous-integration
fuente
He estado usando Teamcity durante el último año y medio y tengo una gran experiencia. He integrado varios proyectos .Net y Java y he utilizado herramientas como MSBuild, Maven, etc. Encontré Teamcity bastante simple de configurar y trabajar. También logré que CI se ejecutara para algunos proyectos SQL, lo cual fue un poco de pesadilla que podría haber sido peor con otras herramientas de CI.
Recientemente actualizado a Teamcity 8.0.6, que fue indoloro. Además, Teamcity proporciona una API REST que es muy útil para algunos escenarios. Si está utilizando PowerShell para automatizar compilaciones, hay disponibles varios scripts de integración de Psake / Teamcity en GitHub.
fuente