2009-09-17 10 views
81

Estoy buscando una comparación de diferentes continuous integration (CI) Servidores (especialmente enfocando en .NET) y no pude encontrar ninguno.Comparación de servidores CI?

Por lo tanto me gustaría saber lo que piensa de los soluciones diferentes disponibles, ¿cuáles son los pros y los contras, cuáles son las necesidades de alojamiento y por eso CI servidor XY es el servidor de su elección.

Estoy interesado en sus pensamientos en (no dude en comentar sobre los demás a):

Puntos de interés son:

  • configuración (fácil, flexible)
  • Integración con SMC (esp. DSVC como Git o hg)
  • Integración con Sytems construcción (MSBuild, NAnt, Rastrillo)
  • Integración con infraestructuras de prueba
  • Integración con Fuente anaylsis (Simian, NDepend, FxCop, NCover etc.)
  • webinterface/cuadros de mando
  • requisitos de infraestructura
+29

27 personas encuentran esto útil, pero está cerrado. ** SIGH ** – Ryan

+0

CruiseControl.NET se mudó después de finalizar la colaboración con Thoughtworks. Nueva url: http://www.cruisecontrolnet.org/ – Jowen

+2

@Ryan, hay muchas cosas interesantes en el mundo que no encajan bien con SO. –

Respuesta

49

Ninguna pregunta como esta está completa sin un enlace al gran CI Feature Matrix(Web Archive) que enumera casi todas las opciones de CI disponibles.

Pero creo que es importante anticipar el alcance de lo que desea incluir en su sistema de CI. Va a ser solo compilaciones o va a incluir 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 en el Elements of Enterprise CI (PDF; sin registro). necesario). Por favor, no dejes que la "E-word" te desanime; Solo me refiero a cosas que van más allá de la construcción de CI de retroalimentación rápida básica. :)

No es específico de la herramienta, pero enumera una variedad de prácticas que puede considerar mientras se encuentra en las etapas de planificación/evaluación.

+0

+1 para el enlace de matriz de funciones, muy útil. – Gishu

+5

Geez. Esa matriz sufre de "DeathByOverload". El UX básico dicta que las cuadrículas grandes son inútiles a menos que haya filtrado. Para colmo de males, no hay descarga (csv) y el descuento no se puede descargar directamente. Incluso eso se resistió a copiar en Excel ... Me di por vencido. – sehe

+4

El enlace de la Matriz de funciones está muerto :( – Marty

7

TeamCity tiene una característica maravillosa de permitir que el desarrollador para realizar una compilación personal antes de comprometerse. ¡Muy útil!

CruiseControl.NET es el abuelo del grupo y, por tanto, es un poco anticuado visualmente etc. Como se ha estado alrededor por un tiempo, Google sabe cómo solucionar muchos problemas que se enfrentará.

Por estas razones (entre otros), utilizo CruiseControl.NET en el trabajo y TeamCity en casa y en mi vida de código abierto :)

+0

Ah, ¿no es CC.Net el .net-puerto de CruiseControl? – Mnementh

1

CruiseControl.NET - que puede ser un poco de un dolor de configurar (al igual que la mayoría de los sistemas de CI), pero vale la pena persistir con. Actualmente tengo configurado para ejecutar pruebas unitarias al finalizar las compilaciones, y para producir instaladores Wix bajo demanda. Como dijo Dan, parece un poco anticuado, pero eso no importa, ya que le proporciona una gran cantidad de información fácil de leer y fácil de leer.

Una cosa: asegúrese de que todos sus desarrolladores tengan instalado CC Tray, ejecutándose y apuntando a sus compilaciones. Es una gran sensación obtener "Otra compilación exitosa" en su bandeja de notificaciones.

14
+1

Acepto que SO ya está bastante lleno de comparaciones de servidores de CI. No sé sobre Teamcity y CIFactory, pero en lo que respecta a CC (.net) y Hudson, la elección es bastante clara hoy en día; aquí está mi opinión: http: // stackoverflow.com/questions/604385/what-is-the-difference-between-hudson-and-cruisecontrol-for-java-projects/888054 # 888054. (No importa el énfasis de Java en esa pregunta; Hudson también es genial para .NET: http://stackoverflow.com/questions/616149/how-and-why-do-i-set-up-ac-build-machine/ 616230 # 616230) – Jonik

+0

@Jonik Gracias, muy buenos enlaces. No sé cómo los extrañé, ambos brindan excelentes respuestas e información muy útil. –

+0

"no sé sobre Teamcity y CIFactory" ... eso es exactamente por lo que quiero una comparación exhaustiva que NO solo trata de x vs. y Por eso es wiki de la comunidad, no dude en extraer la conclusión de los enlaces a los que se hace referencia . –

0

Soy bastante nuevo en la escena CI y he estado concentrando mis esfuerzos en CruiseControl.NET, usando NAnt e Ivy para construir mis proyectos .NET.

He encontrado 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 compilación combinado.

Voy a estar buscando en TeamCity en el futuro cercano por mi propio interés, pero creo que CruiseControl hace un buen trabajo, ¡pero tan bueno como tus scripts de construcción! Si se trata de pantalones, entonces solo se puede esperar que sus creaciones sean tan buenas.

Pero, en resumen, CruiseControl.NET es una buena solución, pero todavía tengo que descubrir qué tan buena es la competencia en comparación.

0

Estamos usando ccnet en el trabajo, lo cual está bien para la mayoría de nuestras necesidades (tenemos alrededor de 50 compilaciones automáticas), pero se necesita una persona para ajustar y corregir a tiempo completo.

Si está empezando desde cero, eche un vistazo a Bamboo. Lo hemos analizado y parece realmente prometedor, pero no coincide por completo con nuestras necesidades y hemos invertido demasiado tiempo en ccnet para cambiar a Bamboo ahora.

Saludos,

Sebastiaan

1

Usamos Hudson en el trabajo. La razón principal es que es muy fácil de configurar. Puede ejecutar directamente la guerra (es un archivo ejecutable) o implementarla en cualquier servlet-contenedor. Y estás listo para comenzar. También Hudson admite muchas herramientas y es extensible a través de su sistema de complementos.

5

Soy un usuario de CruiseControl.NET todo el camino. Mis equipos lo usan en el trabajo y 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 unidad e integración, archivado de fuente o versión candidata, cobertura de código e incluso implementación en nuestro sistema de prueba. Es altamente personalizable, funciona bien con MSBuild y NAnt, e incluso tiene una arquitectura extensible de plug-in.

Hace prácticamente todo lo que necesito.

La mayor desventaja: la configuración a veces es dolorosa y puede llevar tiempo. Pero una vez que está hecho, está hecho, y como dijo otro cartel, me encanta ver la señal de "compilación exitosa" porque sé que no solo funcionó la compilación, sino también que mi unidad y las pruebas de integración funcionaron correctamente.

2

Team Foundation Build es una opción y también interactúa muy bien con Team Foundation Server. Es gratis siempre y cuando tengas licencia TFS.

+0

Pensé que nadie mencionaría TFS Build System, totalmente integrado con TFS y compatible con Microsoft. La mayoría de los desarrolladores de .Net ya pueden haber instalado TFS. –

+0

[Team Builds] (https://www.visualstudio.com/en-us/docs/build/overview) en TFS 2015/2017 son mucho más fáciles de configurar y usar, e incluso puedes monitorearlos en tiempo real con [ Monitor de compilación CatLight] (https://catlight.io/a/tfs-build-monitor) –

0

Heredé un servidor de luntbuild. No es una buena opción para un proyecto .NET. Si descubre que constantemente recurre al uso del servidor de compilación para ejecutar tareas genéricas de línea de comando, entonces algo está mal. Un buen servidor de compilación entendió bien las tareas de salida de pruebas unitarias y de msbuild como más que comandos opacos que se ejecutarán cuando cambie el sistema de control de origen.

Estoy disfrutando la migración a Team City.

1

Cambiamos de CruiseControl.NET a TeamCity principalmente debido a la facilidad de configuración. TeamCity también tiene más características, pero la razón principal es que una buena interfaz de usuario web es más fácil de usar que los archivos de configuración XML.

EDITAR: La mayoría de las tareas que TeamCity hará fuera de la caja; cuando sea necesario usamos NAnt.

0

Estamos contentos con Hudson. No tengo nada para comparar, pero fue fácil de configurar y ejecutar. En este momento solo construye proyectos Win32 C++ y un instalador, pero estamos migrando a Linux y debería funcionar con eso también.

Obtiene Subversion repositorios sin ningún problema y envía alertas, etc. Nos gusta hasta ahora. De nuevo, tenemos una experiencia limitada con las comparaciones.

0

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 geniales como las dependencias de compilación y mucho mas. Simplemente funciona, me encanta.

Cuestiones relacionadas