2009-03-02 11 views

Respuesta

36

Como committer mucho tiempo climatizador y alguien que nunca ha utilizado Hudson estoy bastante sesgada, pero mi opinión sobre ella es:

Hudson es mucho más fácil de poner en marcha (en gran parte de una buena interfaz web) y tiene una comunidad de desarrollo de complementos muy activa.

CruiseControl tiene soporte de un lote de 3rd party stuff y tiene el beneficio de hacer algunos trucos con la configuración xml como preconfiguración de plugins e include.projects que le permite versionar la información de configuración con el proyecto.

Si solo vas a tener algunas compilaciones, creo que Hudson es el claro ganador. Si vas a tener lotes, y no te importa el xml, entonces creo que los trucos de configuración xml de CruiseControl se convierten en una verdadera fortaleza.

+2

Enlace para "cosas de terceros" que no funciona. –

15

Una diferencia es que Hudson es el producto de un solo genio intelecto — Kohsuke Kawaguchi. Debido a eso, es consistente, coherente y sólido como una roca. La desventaja podría ser alguna limitación en la tasa de progreso. Sin embargo, Kohsuke es increíblemente prolífico, así que no estaría demasiado preocupado por eso. Y es extensible, así que si hay algo para lo que Kohsuke no tiene tiempo (o no quiere), probablemente puedas hacerlo tú mismo.

30

Mi último proyecto, comenzamos en CruiseControl. Que se balanceó. Luego nos mudamos a Hudson, que se sacudió aún más. Las cosas que me gustaron de Hudson:

  • Los proyectos de subida y bajada. Por lo tanto, un compromiso con su código de acceso a datos también activará una compilación de la capa de presentación.

  • Utilice fácilmente un proyecto existente como punto de partida de uno nuevo, de modo que si tiene la costumbre de crear ramas de desarrollo, asegurarse de que se encuentran en una integración continua es muy fácil.

+4

+1, totalmente de acuerdo, especialmente sobre el segundo punto. Hemos terminado usando Hudson para muchas cosas por eso (más sobre esto: http://stackoverflow.com/questions/604385/what-is-the-difference-between-hudson-and-cruisecontrol-for- java-projects/888054 # 888054) – Jonik

+1

Con respecto a su segundo punto, "[u] s [ing] un proyecto existente como punto de partida para uno nuevo" también es fácil con CC: simplemente copie el archivo (s) relevante (s), realice los cambios apropiados y registre el nuevo proyecto en 'ccnet.config'. Muy simple realmente. "Fácilmente" en este caso puede ser "fácil" en general cuando se considera a Jenkins sobre CC, haciéndolo en una GUI frente a archivos XML. TMTOWTDI, pero ninguno es particularmente difícil. – J0e3gan

3

Hudson es la alternativa más fácil de usar en mi opinión. Se puede configurar y mantener completamente a través de la interfaz web (aparte de la instalación inicial de la aplicación web, por supuesto).

La única forma en que esto podría decirse sobre CruiseControl es si cuenta el editor de archivos XML incorporado.

Aún así, habiendo usado ambas, aún preferiría que alguien no tenga una compilación automática.

+0

"Aún así, habiendo usado ambos, preferiría que alguien no tenga una compilación automática". +1 para una medida de cordura. En medio de toda la furia y alta religiosidad que rodean a Jenkins en los últimos tiempos, la gente con demasiada frecuencia parece olvidar que CC, Jenkins y otras alternativas de ICs maduras son _medio de un fin_ - al final, ser lo que importa más que los medios. Personalmente, considero que CC es fácil de usar, incluso como un recién llegado relativo. Jenkins está bien también. Pero hacer un gran trato con uno contra otro es mucho ruido y pocas nueces. – J0e3gan

4

Miré tanto a Cruise Control como a Hudson, pero elegí Hudson porque era mucho más fácil de configurar y configurar. Hudson parece muy utilizado en la actualidad con lanzamientos regulares y mucha extensión a través de complementos. Lo recomendaría muchísimo.

117

Estoy de acuerdo con this answer, pero quería agregar algunos puntos.

En resumen, Hudson (actualización: Jenkins) es probablemente la mejor opción ahora.Primero y más importante porque la creación y configuración de trabajos ("proyectos" en vocabulario CC) es mucho más rápida que a través de la interfaz de usuario web de Hudson, en comparación con la edición del archivo de configuración XML de CruiseControl (que solíamos mantener en control de versiones solo para realizar un seguimiento mejor). Esto último no es especialmente difícil, simplemente es más lento y más tedioso.

climatizador ha sido grande, pero como se ha señalado en el blog bien llamada de Dan Dyer, Why are you still not using Hudson?, adolece de ser el primero. (Um, como Gran Bretaña, si se quiere, más tarde en la revolución industrial, cuando otros comenzaron a adelantarlo con tecnologías más nuevas.)

Utilizamos CruiseControl en gran medida y hemos cambiado gradualmente a Hudson, finalmente usándolo exclusivamente. Y aún más en gran medida: en el proceso, hemos comenzado a utilizar el servidor de CI para muchas otras cosas que antes, porque configurar y administrar los trabajos de Hudson es muy útil. (Ahora tenemos más de 40 puestos de trabajo en Hudson: la construcción habitual & trabajos de prueba para ramas estables y de desarrollo; trabajos relacionados con la liberación (instaladores de edificios, etc.); trabajos que ejecutan algunas métricas (experimentales) contra la base de código;) UI o pruebas de integración contra una versión de base de datos específica, y así sucesivamente)

De esta experiencia, yo diría que incluso si tiene muchas versiones, incluidas las complicadas, Hudson es una opción bastante segura porque, como CC , puede usarlo para hacer cualquier cosa, básicamente. Simplemente configure su trabajo para ejecutar los objetivos Ant o Maven, scripts de shell de Unix o scripts de Windows .bat, en el orden que desee.

En cuanto a las cosas de terceros (mentioned here by Jeffrey Fredrick): ese es un buen punto, pero mi impresión es que Hudson está alcanzando rápidamente, y que ya hay un gran número de plugins available para él.

Para mí, las dos cosas que puedo nombre que que extraño de climatizador son:

  1. Sus correos electrónicos de alerta sobre Broken construye eran más informativo que los de Hudson. En la mayoría de los casos, la causa principal era evidente desde el mismo correo HTML bien formado de CC, mientras que con Hudson generalmente necesito seguir el enlace a la interfaz de usuario web de Hudson, y hacer clic un poco para obtener los detalles.
  2. La CruiseControl dashboard es más adecuada, de fábrica, como "information radiator" (se muestra en un monitor público o se proyecta en una pared, de modo que siempre se puede ver rápidamente el estado de todos los proyectos). Con la página principal de Hudson, necesitábamos algunos trucos de Greasemonkey para obtener filas de trabajos muy bien verdes/rojos.

Descargo de responsabilidad: No he estado siguiendo el proyecto CC de cerca durante el último año más o menos. (Pero desde un quick look, no ha cambiado de manera dramática.)

Nota (2011-02-03): Hudson ha sido renamed/forked como Jenkins (por Hudson creador Kohsuke Kawaguchi y otros). Parece que Oracle, que controla el nombre de Hudson, mantendrá "Hudson" también, pero mi recomendación personal es ir con Jenkins, sin importar lo que Oracle diga.

+16

Casi 2 años después, todavía estoy de acuerdo con todo lo que escribí anteriormente sobre Hudson ([ahora se renombra a Jenkins] (http://jenkins-ci.org/content/hudsons-future)). Como una adición, aquí hay algunas cosas más interesantes que he usado para Hudson desde entonces: lanzar nuevas instancias de AWS EC2 de cierto AMI e implementar nuestro último software allí directamente desde el control de la versión; Deje que el cliente (experto en tecnología) controle la apariencia de una aplicación de demostración (editando un archivo de configuración que usa la aplicación) y también ejecute ciertas operaciones administrativas contra la base de datos utilizada por la aplicación (los trabajos parametrizados son útiles) ...) – Jonik

+1

... Compruebe periódicamente que un sitio web o servicio esté en funcionamiento; Combina automáticamente los cambios del tronco con todas las ramas de trabajo poco después de una compilación de troncales exitosa; y así. Vale la pena señalar que, en la mayoría de los casos, Hudson era simplemente un ** front-end ** para un script shell/Python/etc, o un reemplazo más "visible" para un cronjob. ¡Pero entonces, es muy bueno para tales propósitos! En un proyecto, el cliente solicitó específicamente más trabajos de Hudson para las operaciones administrativas/de limpieza después de haber hecho uno; para las necesidades que tenían era perfectamente adecuado, y mucho más práctico que iniciar sesión en un servidor para ejecutar un script. – Jonik

1

He intentado el control de crucero ... Es bueno ... Pero los documentos están fragmentados. Dashboard es confuso. La creación de widgets también es confusa. Nunca probé Hudson. Lo intentaré el fin de semana.

0

Recientemente configuré a Jenkins para construir proyectos Borland BDS 2006 haciendo uso de Subversion y estoy muy contento con él. Nunca usé CruiseControl todavía, así que no puedo comparar. Lee la publicación de mi blog para más información.

Continuous integration of Delphi project with Jenkins

Cuestiones relacionadas