CruiseControl [. Net] vs TeamCity para una integración continua?


Me gustaría preguntarle qué entorno de construcción automatizada considera mejor, basado en la experiencia práctica. Estoy planeando hacer algo de desarrollo de. Net y Java, así que me gustaría tener una herramienta que soporte ambas plataformas.

He estado leyendo alrededor y me enteré de CruiseControl.NET , utilizado en el desarrollo de stackoverflow, y TeamCity con su soporte para agentes de compilación en diferentes plataformas de sistemas operativos y basados en diferentes lenguajes de programación. Entonces, si tienes alguna experiencia práctica en ambos, ¿cuál prefieres y por qué?

Actualmente, estoy principalmente interesado en la facilidad de uso y gestión de la herramienta, mucho menos en el hecho de que CC es de código abierto, y TC está sujeto a licencias en algún momento cuando tiene muchos proyectos que ejecutar (porque, lo necesito para una pequeña cantidad de proyectos).

Además, si hay alguna otra herramienta que cumpla con lo mencionado anteriormente y cree que vale la pena una recomendación, siéntase libre de incluir en la discusión.

Author: dna, 2008-10-12

11 answers

He trabajado en y con herramientas de Integración Continua desde la que generó Cruise Control (versión java). He intentado casi todos ellos en algún momento. Nunca he sido más feliz que con TeamCity. Es muy simple de configurar y todavía 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 bonito. La página de inicio del proyecto de TeamCity también es muy valiosa. Para proyectos. NET simples, solo puede decirle a TeamCity dónde la solución es y qué ensamblajes tienen pruebas y eso es todo lo que necesita (aparte de la ubicación de control de fuente). También hemos utilizado algunos scripts MSBuild complicados con él y hemos hecho el encadenamiento de compilación. También he pasado 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. Desde CruiseControl.NET es de código abierto también tiene la opción de agregar o cambiar lo que sea te gusta. Yo usaré CruiseControl.NET desde su lanzamiento y escribió 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 cambiar. Si estuviera empezando un nuevo proyecto, podría intentarlo, pero TeamCity ha hecho un gran trabajo al hacer las cosas simples simples mientras hace que el complejo sea bastante indoloro.

Editar: Acabamos de actualizar a TeamCity 5.0 unas semanas hace y fue otra actualización indolora. Nos permitió aprovechar las capacidades de cobertura de código mejoradas y el soporte de GIT. Ahora también estamos usando las características de compilación personal y confirmación pre-probadas que han estado dentro por un tiempo. Solo pensé que debería actualizar la respuesta para indicar que TeamCity sigue mejorando y sigue siendo fácil de usar.

 111
Author: Mike Two,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-13 09:59:21

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 Kona: Continuous Integration and Better Unit Testing (el primer 1/3 sobre TeamCity) también revisaré TeamCity. Me encanta el panel de control 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.

P. S.: Espero que haya un valioso CC.NET video en la red también.

 33
Author: boj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-03 09:37:41

Mi servidor CI favorito es 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 generalmente 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 potente, libre para muchos usos, y tiene una característica asesina: Ejecución remota. Usted puede "pre-commit" su compruebe directamente desde IDEA o Eclipse, ejecute una o más configuraciones de compilación en el servidor de TeamCity y solo confirme los cambios si la compilación se realiza correctamente(por ejemplo, compila y todas las pruebas pasan).

Dado que puedes poner en marcha tanto TeamCity como Hudson en unas pocas horas, podría valer la pena agarrar ambos y ejecutarlos uno al lado del otro, junto con cualquier otro (como CruiseControl) que se te ocurra. Si no puede soportar un servidor 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.

 15
Author: CoverosGene,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-03-12 12:43:53

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. Usted no tiene que hackear alrededor con .configurar archivos como lo haces con CC y setup es muy fácil. Como no tienes muchos proyectos, recomendaría Team City sobre CC hasta que llegues al punto en que Team City cuesta costs.

 12
Author: SaaS Developer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-12 19:48:50

He usado ambos CC.net y 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 dolores de cabeza de configuración inicial. Sin embargo, el soporte por correo electrónico fue absolutamente de primera categoría para configurar todo. He recibido respuestas a mis preguntas tontas en literalmente minutos.

La interfaz es intuitiva y sensible, así como llena 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 reiniciar los servicios de 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 Ndepend, scripts Nant anidados, versión Perforce etiquetado, lo que sea, lo estamos haciendo.

Recomiendo encarecidamente TeamCity a cualquiera que busque un servidor de integración continua, o cualquier servidor de compilación, realmente.

 12
Author: user28669,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-16 18:09:28

Sin querer lanzarte herramientas alternativas: -)

Hudson es una gran alternativa de código abierto, he utilizado CC y CC.net y confieso que creo que son herramientas fantásticas. Estoy pensando en cambiar a Hudson, ya que parece mucho más fácil de configurar y mantener.

Https://hudson.dev.java.net/

 3
Author: Scott James,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-12 19:45:53

Asegúrate de que el sistema que decidas escalar al número de proyectos que necesitarás manejar...

Uso CruiseControl.Net pero no lo recomendaría para construir muchos proyectos... Tengo un arreglo (posiblemente ligeramente extraño) donde tengo muchas bibliotecas estáticas de C++ que compongo en aplicaciones. Cada biblioteca depende de otras bibliotecas y las aplicaciones extraen un conjunto de bibliotecas y compilan. Cada lib tiene un conjunto de pruebas. Cada aplicación tiene un conjunto de pruebas. Compilo para 5 compiladores y variaciones de plataformas (windows).

Lo primero que encontré fue que CC.Net Los disparadores de proyecto no son realmente lo que necesitas y el multi-disparador no funciona bien con los disparadores de proyecto. La forma en que funcionan los disparadores del proyecto (usan la comunicación remota para conectarse al servidor donde se almacena el proyecto (incluso si se trata de un proyecto administrado por la misma instancia de CC.Net) y luego tire de todos los proyectos de ese servidor y busque la lista secuencialmente buscando el proyecto que está interesar...) significa que no escalan bien. Una vez que usted consigue sobre cierto número de proyectos usted 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, así que puedes arreglarlo... Y, estoy seguro de que está bien para un pequeño número de proyectos no interdependientes.

Para obtener más detalles de los problemas que tenía y algunos parches para CC.Net ver aquí http://www.lenholgate.com/archives/cat_ccnet.html

 3
Author: Len Holgate,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-21 08:11:13

Recientemente he configurado cc .net. Es una gran aplicación, pero requiere un poco de paciencia. Usted estará editando archivos de configuración en el bloc de notas mucho:)

Ha existido por un tiempo, por lo que está bien soportado y normalmente puedes encontrar a alguien que haya hecho lo que quieres hacer antes. La interfaz web también es. net, que fue una ventaja para nosotros, ya que somos una tienda de Microsoft.

No he usado TeamCity, pero he escuchado bastantes recomendaciones y se ve bastante.

 2
Author: alexmac,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-12 18:53:44

Tuve una experiencia configurando y ejecutando CruiseControl (versión Java) en Linux durante mi compañía anterior. Como la mayoría de la gente sugiere, no es lo más trivial de configurar. Necesita entender su marco para llegar a la configuración manejable/manejable. Sin embargo, una vez que pasaste esa joroba, siento que CruiseControl es lo suficientemente flexible como para permitirte hacer diferentes tipos de cosas para adaptarse a diferentes escenarios.

Además, la documentación de CruiseControl, su la página wiki también tiene información útil.

No tengo experiencia directa con TeamCity. Aunque su función de confirmación previa a la prueba parece bastante interesante.

La otra herramienta de 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.

 2
Author: ejel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-22 10:45:44

Una tercera opción que podrías considerar: Crucero de Thoughtworks. Está construido en CruiseControl, pero ofrece muchas más características, una configuración más fácil, etc, etc. No es libre (o de código abierto).

Http://studios.thoughtworks.com/cruise-continuous-integration

 1
Author: TheSmurf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-12 19:39:46

He estado usando Teamcity durante los últimos 1 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 fácil de configurar y trabajar. He logrado que CI se ejecute para algunos proyectos sql, lo que 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. También Teamcity proporciona una API REST que es muy útil para algunos escenarios. Si utiliza powershell para automatizar compilaciones, hay varios scripts de integración de Psake/Teamcity disponibles en GitHub

 0
Author: Mohammad Nadeem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-05 00:54:36