¿Comparación de servidores CI? [cerrado]

87

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):

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
Peter Mortensen
fuente
31
27 personas encuentran esto útil, pero está cerrado. SIGH
Ryan
CruiseControl.NET se mudó después de que terminó la colaboración con Thoughtworks. Nueva URL: cruisecontrolnet.org
Jowen
2
@Ryan hay muchas cosas interesantes en el mundo que no encajan bien con SO.
Andy Wiesendanger
¿Por qué no Azure DevOps ?
zwcloud

Respuestas:

51

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.

Jeffrey Fredrick
fuente
5
Caray. Esa matriz sufre de "DeathByOverload". Basic UX dicta que las cuadrículas grandes son inútiles a menos que haya filtrado. Para colmo de males, no hay descarga (csv) y la rebaja no se puede descargar directamente. Incluso eso se resistió a copiar en Excel ... Me di por vencido.
sehe
4
El enlace de Feature Matrix está muerto :(
Marty
11
Página archivada: web.archive.org/web/20130730154141/http://…
Darren Griffith
1
La página archivada está
inactiva
14

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.

Pascal Thivent
fuente
1
Estoy de acuerdo en que SO ya está bastante lleno de comparaciones de servidores 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: stackoverflow.com/questions/604385/… . (No importa el énfasis de Java en esa pregunta; Hudson también es excelente para .NET: stackoverflow.com/questions/616149/… )
Jonik
@Jonik Gracias, muy buenos enlaces. No sé cómo los extrañé, ambos brindan excelentes respuestas e información muy útil.
Pascal Thivent
"no sé sobre Teamcity y CIFactory" ... es exactamente por eso que quiero una comparación completa que NO solo trate con x vs. y Es por eso que es una wiki comunitaria, siéntete libre de extraer la conclusión de los enlaces referenciados.
Johannes Rudolph
@Johannes, bastante justo; Estoy de acuerdo en que la mayoría de las preguntas existentes tienen un alcance más limitado que este. Pero puede que no haya muchos usuarios aquí con experiencia con todos los de Hudson, CC, Teamcity y CIFactory que puedan proporcionar una buena comparación. Si necesita un servidor de CI, mi consejo (por experiencia personal y, por ejemplo, votos en stackoverflow.com/questions/140453/… ) sería probar Hudson primero.
Jonik
7

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 :)

Daniel Elliott
fuente
Ah, ¿CC.Net no es el .net-port de CruiseControl?
Mnementh
5

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.

scottmarlowe
fuente
2

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.

El mate
fuente
Pensé que nadie mencionaría TFS Build System, totalmente integrado con TFS y compatible con Microsoft. Es posible que la mayoría de los desarrolladores de .Net ya hayan instalado TFS.
Diego Mendes
Las compilaciones de equipo en TFS 2015/2017 son mucho más fáciles de configurar y usar, e incluso puede monitorearlas en tiempo real con el monitor de compilación CatLight
Thomas Bennet
Probablemente haya una razón por la que no se menciona ... Mis 2 centavos: acabo de comenzar a trabajar en el proyecto que lo usa, estamos tratando de mejorar nuestra automatización y establecer un proceso de entrega ... pero cada CI de vez en cuando se acaba minutos "y adivina qué ... tienes que pagar por unos minutos. Esa es la razón por la que estoy en este hilo ...
Julia
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 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.

Mnementh
fuente
1

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.

TrueWill
fuente
1

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.

Pete OHanlon
fuente
0

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

Sebastiaan M
fuente
0

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.

MatthewMartin
fuente
0

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.

Brett Rigby
fuente
0

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.

Peter Mortensen
fuente
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 interesantes como dependencias de compilación y muchas más. Simplemente funciona, me encanta.

Alon Amsalem
fuente