Servidores de integración continua [cerrado]


78

Mi empresa está considerando cambiar los servidores de integración continua (no diré cuál tenemos ahora, así que no distorsionaré sus respuestas de todos modos :)) Me pregunto si alguien tiene alguna recomendación. Mejor experiencia de usuario, nivel de dificultad para mantener, etc ...

Todo nuestro código está en Java y usamos ANT como herramienta de compilación.

Respuestas:


89

Recientemente implementé un servidor Hudson . Habiendo usado anteriormente el control de crucero, estoy muy satisfecho con Hudson y muy impresionado con su facilidad de configuración y uso. Agregar nuevos proyectos es infinitamente más fácil que con el control de crucero.


Trabajé en lugares que usaban Cruise Control y otros que usan Hudson y nunca querría volver a Cruise Control. También tiene un buen complemento NetBeans y la integración de pruebas fue excelente.
18Conejo

1
Completamente de acuerdo. Configuré un servidor CruiseControl y, más recientemente, un servidor Hudson en el trabajo, y CruiseControl requirió mucho más mantenimiento. Es un verdadero placer trabajar con Hudson, además hay muchos complementos buenos para él (por ejemplo, para Cobertura, Emma, ​​FindBugs, CPD, etc.).
Tom De Leu

2
+ Hudson. Cruisecontrol es un fastidio, Hudson es amigable.
mfx

1
Hudson es extremadamente fácil de instalar, configurar y mantener. Lo usamos para compilaciones de hormigas y maven.
jon077

9
Si alguien se lo perdió, Hudson ha sido bifurcado / renombrado como Jenkins por sus desarrolladores originales. Ahora está mejor con Jenkins , ya que esta pregunta probablemente lo convencerá.
Jonik

22

Editar: usamos Hudson ahora.

Hace un tiempo examiné varios de estos con los siguientes requisitos:

  • Código Java
  • Ant construye
  • Construcciones maravillosas
  • Construcciones distribuidas
  • Integración de disparador SCM
  • informes http
  • informes smtp

La Matriz de funciones de integración continua es un excelente lugar para comenzar.

Terminé seleccionando AnthillPro y lo estoy usando con éxito, simplemente rascando la superficie de lo que podemos y esperamos usar.


DIVULGACIÓN: Esa matriz fue escrita por la gente de Cruise Control.
Pablo Fernandez

Gracias por publicar el enlace de la matriz de CI, un recurso excelente, aunque es de la gente de control de crucero / crucero.
Julie


1
+1 para enlace a matriz. Lo uso cada vez que tengo que revisar este tema.
Jared

Usamos Hudson y luego cambiamos a AHP debido a su soporte para implementaciones. Definitivamente es más complicado que Hudson, pero también mucho más flexible y personalizable.
Brian Kelly

19

Jetbrains TeamCity se veía realmente bien cuando lo miramos. Está basado en Java, por lo que debería ser fácil de extender para su equipo, y puede hacer compilaciones distribuidas, etc. Hay una versión gratuita que puede evaluar.


6
Aclaración: Jetbrains TeamCity Professional es gratuito para hasta 20 configuraciones de construcción. Sin límite de tiempo, no es una edición de evaluación.
Bevan

12

También he estado investigando esto y, aunque inicialmente estaba mirando CruiseControl, escuché cosas buenas sobre Hudson y decidí intentarlo. Estoy completamente impresionado por lo fácil que fue comenzar (solo descargar y ejecutar) y la configuración se realiza a través de la GUI, por lo que no hay que jugar con los archivos de configuración XML.

En cuestión de minutos había realizado mi primera construcción de Ant. Ahora lo tengo funcionando como un servicio de Windows en un servidor que está disponible las 24 horas del día, los 7 días de la semana, tanto en la oficina como a través de VPN. La actualización es tan simple como descargar el nuevo archivo war y reiniciar.

El soporte para informes junit está listo para usar. La instalación de complementos adicionales también es muy fácil y he agregado complementos para Trac, Cobertura, FindBugs y PMD. La calidad del código y las pruebas está aumentando, ya que es muy satisfactorio ver que aumentan los gráficos de tendencias.

Ahora lo uso para administrar todas mis compilaciones para entornos de prueba y producción. Dado que administro varias aplicaciones web, esto me da más tiempo para dedicarlo a la programación real. Honestamente, no puedo recordar cómo me las arreglé sin él.


7

El bambú de Atlassian se ve bien, pero no tengo experiencia con él. Parece ser similar en características a Cruise o TeamCity .


Bamboo no está tan mal (aunque supongo que algo "no está tan mal" si su primera herramienta de CI fue CruiseControl ...). Apenas es capaz de manejar una gran cantidad de proyectos (digamos, más de 200), pero está mejorando.
Roman Starkov

5

Como otras personas aquí, realmente amo a Hudson .

Es extremadamente fácil de instalar (es solo un archivo de guerra para implementar), configurar y usar. Además, ofrece una gran cantidad de funcionalidades que no siempre están disponibles en otros sistemas (build matrix, master y esclavos, seguridad a nivel de servidor o proyecto ...)

La cantidad de complementos existentes es bastante importante ahora, y crear su propio complemento no es tan difícil ...

Para terminar, esta aplicación evoluciona muy rápido: actualmente estamos en el lanzamiento 257 y ¡hicieron más de 100 lanzamientos desde hace un año!

Para los franceses, escribí una guía bastante completa para usar Hudson aquí .


5

Si está utilizando el software de personal de Atlassian (por ejemplo, Jira, Clover, etc.), Bamboo es su camino.

Lo usamos durante un par de meses y puedo recomendarlo. Vale su dinero.


El bambú ciertamente funciona para nosotros en nuestra tienda Atlassian. Sin embargo, si alguna vez toma la ruta de Maven, tenga en cuenta que Hudson tiene algo de magia incorporada que Bamboo todavía no tiene ( jira.atlassian.com/browse/BAM-230 ).
Brian Laframboise

Estamos en hormiga todavía. Entonces no es nuestro caso. Otro problema que encontramos con el bambú: todavía no es 100% compatible con SVN 1.5 (no funciona con el cifrado SASL).
FoxyBOA

5

Si no está completamente convencido de Hudson, una prueba de manejo con un clic debería hacerle cambiar de opinión.

Haga click abajo:

https://hudson.dev.java.net/hudson.jnlp

Esto lanzará Hudson a través de Java Web Start para una prueba de manejo. Una vez que se inicie, visite http: // localhost: 8080 / para acceder al panel. Cualquier configuración que haga con este Hudson se almacenará en ~ / .hudson, por lo que sus datos sobrevivirán a través del reinicio del proceso de Hudson.

Si está utilizando herramientas bastante estándar como svn y ant / maven, debería tener una compilación en funcionamiento en 5 minutos. ¡Diferentes herramientas y puede llevar 20 minutos!

Vea una introducción aquí:

http://wiki.hudson-ci.org/display/HUDSON/Meet+Hudson


4

El bambú funciona muy bien; si tienes efectivo te lo recomiendo. El control de crucero vale su precio; Nunca he podido lograr que descubra de manera confiable que se realizaron y compilaron cambios de origen, ni he podido lograr que se compile manualmente. La interfaz y la configuración son terriblemente complejas.


3

Usamos Cruise Control . Tiene todas las funciones que queremos y fue bastante fácil de configurar. La integración con ANT y SVN está bien.

Con: de vez en cuando tenemos que reiniciar el proceso o la máquina ya que deja de enviar mensajes para la compilación nocturna. No estoy seguro de qué se trata, pero es molesto.


sí, también he experimentado ese tipo de cosas con el control de crucero. Cambié a Hudson. Hasta aquí todo bien.
Chinnery

También he visto este tipo de inestabilidad con CC. Esa es una de las razones por las que mi empresa se cambió a Luntbuild.
pkaeding el

Encontré tanto con CC como con Hudson si marca (selecciona) texto en la ventana de cmd, entonces las herramientas pueden bloquearse escribiendo su salida y parece que se detienen.
Greg Domjan

3

como es habitual en el mundo de Java, existe el mundo del código abierto y el mundo comercial.

Ya hemos visto una cobertura bastante buena de las diversas ofertas.

Hudson: No conozco ninguna otra oferta de servidor Java que sea tan fácil de evaluar. java -jar hudson.war - ¿Qué tan fácil puede ser que eso? NO solo puede usarlo en Windows, puede usarlo en todas las plataformas Java habituales. Se admiten Ant, Maven y una gran cantidad de otras plataformas de compilación.

Lo mejor de Hudson es la capacidad de conexión. Se está desarrollando de forma casi continua. Solicita una función y no tardará en realizarse.

Por lo general, no me gusta sonar como un fanático, pero esta aplicación / desarrollador / comunidad seguro que me impresiona.

BR,
~ A




2

Supongo que seré el primero en mencionar a Luntbuild . Aparte del nombre poco llamativo, es un gran servidor de CI.

  • Muy fácil de configurar.
  • Interfaz de usuario web para crear / administrar sus proyectos y usuarios
  • Soporte para MUCHOS sistemas de control de versiones (lo he usado con CVS, SVN y StarTeam)
  • API remota bastante elegante
  • Granularidad relativamente alta para el control de acceso (para que pueda dar a los clientes acceso solo a sus compilaciones y no a las compilaciones de sus clientes)
  • y mucho, mucho más.

Vea la demostración en vivo . cuenta / contraseña demo / demo

Nota: La demostración en vivo es una versión anterior.


Escuché que la desventaja es la falta de soporte para pruebas unitarias. Vea aquí: stackoverflow.com/questions/672/… Me pregunto si se encuentra con el mismo problema.
sivabudh

No me he encontrado con el mismo problema. Por ejemplo, ANT es capaz de ejecutar pruebas unitarias, y hay muchos analizadores de pruebas unitarias disponibles que tienen tareas ANT. Luego, Lunt puede invocar cualquiera de estos objetivos ANT dentro de un proyecto Lunt. Sin embargo, estoy de acuerdo en que las expresiones OGNL para el análisis de resultados pueden ser complejas. Personalmente, rara vez he encontrado la necesidad de eso.
Liggy

1

Hemos utilizado el control de crucero con resultados decentes. Desde entonces, hemos comenzado a usar Maven como herramienta de construcción en todos nuestros proyectos. Con eso vino el cambio a Hudson para CI, lo cual es muy bueno. Si cree que un cambio a Maven podría ser en su futuro, lo recomiendo. Creo que Hudson incluso se puede usar para llamar a las tareas de Ant, aunque podría ser necesario un contenedor de Maven.

http://hudson-ci.org/



1

Una organización que ejecuto (openqa.org) los ha usado, en un momento u otro, casi todos. En términos de configuración sencilla, elija TeamCity o Bamboo. Pero en términos de confiabilidad general, es posible que desee mirar a Hudson. Realmente me gusta JetBrains, pero descubrimos que TeamCity entró en estados extraños después de un tiempo, lo que hizo que nuestras construcciones fueran muy poco confiables. ¡Lástima, ya que me encanta IDEA!


No he tenido ninguna extrañeza con TeamCity desde la versión 3. Pero quizás mis compilaciones son demasiado pequeñas.
Steve McLeod

1

Hemos estado usando Automated Build Studio y estamos bastante contentos con él. Es una aplicación de Windows, por lo que está atascado en un servidor de compilación de Windows, pero en el lado positivo es muy fácil de configurar, mantener y usar. Usted construye su proceso a partir de componentes mediante apuntar y hacer clic, y puede utilizar secuencias de comandos si ninguno de los componentes satisface sus necesidades.


1

De los pocos que he usado, Buildbot se destaca como el más poderoso y flexible. Sin embargo, no es el más bonito, si eso te importa.


1

He administrado Bamboo y Hudson, y recomendaría Hudson.

Ambos son geniales, pero Hudson tiene un mejor soporte de informes, por ejemplo, publicar sus informes de cobertura, etc. es mucho más fácil dentro de Hudson.

Es probable que esto cambie en un futuro cercano, pero a pesar de la integración de Bamboo con JIRA, etc. y sus estadísticas, Hudson, por su facilidad de uso y soporte de terceros, es mejor independientemente de la cantidad en dólares (es gratis, Bamboo no) .


1

También usamos Hudson y si no fuera por la recesión, probablemente usaríamos Bamboo y la mayoría de los productos de Atlassian (Bamboo, Crucible, Confluence) junto con JIRA.


Entonces, considera que Bamboo es mejor que Hudson, ¿puede explicar por qué? (No todo el mundo está de acuerdo: stackoverflow.com/questions/140453/… )
Jonik

0

Utilizo Continuum para mi servidor de integración continua. No había otra razón que no fuera por contratar a un gerente de desarrollo que había usado en su última asignación, así que parecía tener sentido elegir algo con lo que al menos uno de nosotros tuviera experiencia.

Antes de elegir Continuum, un desarrollador junior pasó dos semanas tratando de poner en marcha CruiseControl. Sin embargo, tenemos Continuum 1.0 para que se ejecute primero.



0

Usamos StarTeam y entre Hudson y CruiseControl.NET, CC.NET tiene algunos errores al integrarse con StarTeam. No parece reconocer el espacio de trabajo que definimos en los archivos de configuración.


0

El año pasado, en una conferencia en los EE. UU., Escuché por primera vez sobre Cruise Control .net en una presentación de 1 hora, de camino a casa en la llanura decidí implementar un pequeño POC para nuestra empresa y lo hice con éxito en menos de 5 horas ( incluyendo todo el aprendizaje que pude haber hecho).

Lo estoy usando desde entonces y debo decir que estoy muy satisfecho con los resultados y la facilidad de operación.Hay algunos inconvenientes (por ejemplo, falta de distribución de tareas en la escala de servidores, aunque puede monitorear varios servidores) encontré un error en una de las implementaciones y debido a que es un código abierto, podría haberlo solucionado muy rápidamente (gran ventaja) - creé un pequeño [proyecto] [1] en codeplex para contener mis correcciones antes de contribuir a la comunidad como registro Le animo a que mire esta plataforma, también sería bueno si pudiera decir lo que realmente necesita.

[1]: http://www.codeplex.com/DavidovitzCCE proyecto


0

Consulte nuestro Parabuild . En comparación con las herramientas gratuitas, es muy fácil de configurar y sus gastos generales de mantenimiento son casi nulos. no es gratis, pero obtienes lo que pagas.


0

¿Por qué no utiliza un servicio de CI alojado? Entonces no tiene que preocuparse por el mantenimiento, los costos, etc.

MikeCI es un servicio de CI alojado que aloja sus compilaciones en Amazon EC2 y por solo $ 10 por mes es mucho más barato que mantener su propio servidor de CI.

Darle una oportunidad.


Tenga en cuenta que entregará su software a un tercero en este caso. Es posible que no se le permita hacer eso. E incluso si se le permite, tendría un aspecto decente si realmente vale la pena. Dar su software a un tercero es algo realmente malo y no quiere esto la mayor parte del tiempo. No por ahorrar unos pocos dólares. Cuando no está destinado a ser de código abierto, en la mayoría de los casos no quiero dar software a un tercero que me costó miles de dólares.
Fabian Barney


0

CruiseControl.NET es mucho más efectivo en Windows Box que el original basado en Java. Especialmente cuando el servidor de compilación dedicado aún no está disponible.


¿Mucho más efectivo que qué?
EFraim

Luego, el CruiseControl original de Java. Arreglaré la respuesta.
Oleg Zhylin

0

Quizás quieras mirarlo también.

http://www. Thoughtworks-studios.com/solutions/deployment-management texto del vínculo

ThoughtWorks Deployment Management Solution combina el poder de Twist (pruebas ágiles) con Go (gestión de versiones).

  • Twist captura los requisitos para ser probados directamente por los usuarios comerciales
    y luego respalda su automatización como pruebas a largo plazo que evolucionan con la aplicación.
  • Go ayuda a los equipos de desarrollo y operaciones de TI a modelar los
    procesos de lanzamiento e implementar software de manera
    repetida y confiable.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.