Actualmente utilizamos una vez el 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 origen y desencadena 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 utilizando 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 selenio o similar para probar la interfaz de usuario
- ejecuta emma o ncover para la cobertura del 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 algunas Java (de diferentes equipos de proyecto).
Hacer que las compilaciones remotas funcionen es bastante lento cuando configuramos un nuevo proyecto y creemos que debe haber algo más adecuado para las compilaciones remotas que cc.net.
¿Alguien tiene alguna experiencia con compilaciones remotas con sistemas de integración continua?
Realmente no quiero listas de características de los servidores de CI, agradecería saber cómo los ha utilizado en un entorno de varios idiomas y servidores.
fuente
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í echar un vistazo a CC.
Control de crucero : igual que Hudson, pero de una manera ligeramente diferente. Absolutamente nada se puede entender allí sin un manual y una tonelada de ayuda de google. Acabo de echar un vistazo a TC.
TeamCity - TeamCity se sintió como el cielo 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 a crear archivos, especifique cobertura / pruebas unitarias, etc.) y comience a disfrutar. Y aunque no puedo decir que no busqué en Google, el 95% del proceso de configuración fue muy fácil y claro. Recomiendo esta herramienta Ve y échale un vistazo. Te ahorrará muchos nervios y tiempo :)
También debo señalar que TC no es gratis. Aunque tienen una edición gratuita que se puede usar en proyectos comerciales con algunas limitaciones (configuración de construcción máxima 20), eche un vistazo en su página de precios.
PD: Parece que trabajo para TC, pero realmente no :)
fuente
Utilizamos CC.NET 1.4.
Estamos tratando de actualizar a 1.6 ... qué pesadilla.
Es poderoso ... pero SOLO si lo usas bien y entiendes cómo todo encaja. Lo cual es mucho pedir de 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 desastre.
Personalmente quiero mudarme a TeamCity.
Te recomiendo que te mantengas alejado de ccnet.
fuente
buena pregunta. Actualmente también estamos tratando de descubrir qué herramienta se adapta mejor a nosotros. Así que solo podré contarte un poco de experiencia. Pero estaríamos muy interesados en el sistema de CI que eligió ahora y por qué razones. Así que por favor manténganos informados.
Estoy muy impresionado de cuán alto es el nivel de su CI. Tengo que 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 utilizando Bamboo, que funciona bien con JUnit y Emma. Y no hay tanto esfuerzo para establecer un nuevo proyecto.
Para proyectos .NET todavía estamos buscando la mejor solución
Control de crucero: no pudimos hacerlo funcionar todavía 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 algunos inconvenientes en los que debe superar los derechos de acceso. Hay muchos roles que puede definir y debe saber exactamente qué derechos tiene su proceso de compilació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 necesita.
c) Con respecto a las bibliotecas a las que se hace referencia, también hay algunas cosas que se deben 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 pensábamos. 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 (primero lo primero :-))
Hudson: Próxima herramienta que intentaremos. Parece tener un plugin realmente bueno y fácil para .NET, te contaré cómo funcionó
Bamboo: Primera predicción que obtuvimos: "Demasiado específico para Java". Pero tal vez intentemos el complemento .NET, sin embargo, te lo haré saber
Espero que podamos continuar esta discusión e intercambiar experiencias.
Andy
fuente