it-swarm-es.com

Servidor de compilación continua (cc.net, hudson, bambú, etc.) ¿experiencia de compilación remota?

Actualmente usamos un servidor cc.net para nuestro proceso de compilación, que construye tanto .net (usando msbuild & nant) como Java (usando maven y ant).

CC.net monitorea el control de código fuente y activa una compilación remota que se ejecuta en un servidor separado. CC.net luego recopila los resultados.

Cuando ejecutamos la compilación remota, normalmente:

  • ejecuta nunit o junit o similar usando datos simulados
  • opcionalmente, ejecuta un script de base de datos para crear una nueva instancia de base de datos o restaurar una base de datos desde una posición conocida.
  • ejecuta Selenium o similar para probar la interfaz de usuario
  • ejecuta emma o ncover para cobertura de código
  • construye el sistema para varios entornos de implementación (prueba, aceptación, producción)

Es posible que tengamos varias compilaciones ejecutándose a la vez, algunas .net y otras Java (de diferentes equipos de proyecto).

Lleva bastante tiempo hacer que las compilaciones remotas funcionen cuando configuramos un nuevo proyecto y creemos que debe haber algo más adecuado para compilaciones remotas que cc.net.

¿Alguien tiene alguna experiencia con compilaciones remotas con sistemas de integración continua?
Realmente no quiero listas de funciones de servidores CI, me agradaría más saber cómo las ha utilizado en un entorno de varios idiomas y servidores.

9
Chris Buckett

Hudson (Actualización: en el mundo actual, usaría Jenkins, una bifurcación de Hudson.)

He usado hudson en ambos Java y .NET entornos empresariales para proyectos de alta visibilidad (probablemente hayas visitado algunos de los sitios). Hudson es sólido desde el principio, pero la mejor parte es que hay muchos complementos para hacer casi cualquier cosa que desee. Hudson es altamente configurable, tiene una gran comunidad y es muy fácil de configurar en un entorno de clúster si necesita varias compilaciones a la vez. Es mi servidor CI favorito de todos los que he usado (CC.NET, Hudson y TFS).

Además, puede usar el complemento ChuckNorris para que él le dé el visto bueno o negativo.

8
Ryan Hayes

Nos enfrentamos a esta pregunta hace algún tiempo y decidimos ir con TeamCity . Solo miramos a Hudson, CC y TeamCity. La elección fue fácil de hacer: TeamCity terminó siendo nuestro servidor de compilación. Tenga en cuenta que no soy un profesional en esto y fue mi primera experiencia con servidores de compilación en ese momento.

Hudson - No tenía idea de qué hacer y dónde leer al respecto. Y aunque podía entender algo allí, no era una opción: demasiado trabajo. Decidí echarle un vistazo a CC.

Control de crucero - igual que Hudson, pero de una manera ligeramente diferente. No se puede entender absolutamente nada sin un manual y un montón de ayuda de Google. Pasé a echar un vistazo a TC.

TeamCity - TeamCity se sintió como el paraíso después de los dos primeros. Es el más útil de esos tres. Instale, vaya al panel de administración, configure un proyecto (muestre dónde está el SVN, apunte para construir archivos, especifique pruebas de cobertura/unidad, etc.) y comience a disfrutar. Y aunque no puedo decir que no busqué nada en Google, el 95% del proceso de configuración fue muy fácil y claro. Recomiendo ampliamente esta herramienta. Ve y échale un vistazo. Te ahorrará muchos nervios y tiempo :)

También debo señalar que TC no es gratuito. Aunque tienen una edición gratuita que se puede usar en proyectos comerciales con algunas limitaciones (configuraciones de compilación máxima 20), eche un vistazo en su página de precios.

PD Parece que trabajo para TC, pero realmente no lo hago :)

7
Jefim

Usamos CC.NET 1.4.

Estamos intentando actualizar a 1.6 ... qué pesadilla.

Es poderoso ... pero SOLO si lo usas correctamente y entiendes cómo encaja todo. Que es mucho pedir a todo el equipo. Tenemos 'buildmasters' que tienen acceso al servidor y pueden cambiar las configuraciones. Aun así, hay muchas búsquedas en Google con respecto a ccnet y todo el negocio se ha convertido en un gran lío.

Personalmente, quiero mudarme a TeamCity.

Le recomiendo que se mantenga alejado de ccnet.

3
Nobody

buena pregunta. Actualmente también estamos tratando de averiguar qué herramienta se adapta mejor a nosotros. Así que solo podré contaros una pequeña experiencia. Pero nos interesaría mucho qué sistema de CI eligió ahora y por qué motivos. Así que manténganos informados.

Estoy muy impresionado de lo alto que es el nivel de su IC. Debo admitir que tenemos menos requisitos porque todavía no ejecutamos pruebas de IU y no creamos instancias de bases de datos o similares, solo usamos simulacros para nuestras pruebas unitarias.

Ahora a nuestras experiencias hasta ahora:

Para proyectos Java estamos usando Bamboo, que funciona bien con JUnit y Emma. Y no hay mucho esfuerzo para configurar un nuevo proyecto.

Para proyectos .NET seguimos buscando la mejor solución

  • Cruise Control: todavía no pudimos ponerlo en funcionamiento debido a problemas con la conexión a nuestro repositorio

  • TFS:

    a) Hay algunos pasos de configuración necesarios para poder ejecutar la primera compilación.

    b) Hay algunas trampas en las que hay que superar los derechos de acceso. Hay muchos roles que puede definir y debe saber exactamente qué derechos tiene su proceso de construcción y cuál tiene su cuenta de inicio de sesión personal. Pero si tiene suficiente tiempo para administrar, puede definir cada granularidad particular que necesite.

    c) Con respecto a las bibliotecas referenciadas, también hay algunas cosas que administrar si desea compartir bibliotecas para muchos proyectos y no desea manejarlas en cada proyecto.

    d) Ejecutar la prueba NUnit no es tan fácil como pensamos. Solo es fácil si está utilizando la ejecución de prueba proporcionada por Visual Studio, pero esto no es NUnit

    e) Todavía no intentamos ejecutar NCover (lo primero es lo primero :-))

  • Hudson: próxima herramienta que probaremos. Parece tener un complemento realmente bueno y fácil para .NET, le haré saber cómo funcionó

  • Bamboo: Primera predicción que obtuvimos: "Demasiado Java específico". Pero tal vez intentemos el complemento .NET de todos modos, te lo haré saber

Espero que podamos continuar esta discusión e intercambiar experiencias.

Andy

1
Mayoares