integracion esquema entrega despliegue continuo continua aws c++ continuous-integration

c++ - esquema - integracion continua jenkins



¿Qué herramienta de integración continua es mejor para un proyecto de C++? (6)

Hemos estado utilizando Dart Dashboard . Es de código abierto pero lo maneja KitWare . Desde entonces, han cambiado el nombre a CDash, que supongo que todavía es tan capaz. Estamos realizando varios tipos de pruebas, incluida la integración nocturna y continua en 10 plataformas diferentes, tanto en modo de depuración como de lanzamiento, así como la ejecución de miles de pruebas de aplicaciones y el informe de los resultados allí también.

Cruisecontrol y Hudson son dos populares sistemas de integración continua. A pesar de que ambos sistemas son capaces de hacer las construcciones automáticas continuas de forma agradable, parece mucho más fácil crear una secuencia de comandos de compilación por lotes o bash, luego usar el programador de Windows o cron para programar compilaciones.

¿Hay mejores sistemas de integración continua disponibles para proyectos C ++? ¿O simplemente está usando un script y un programador de la manera más simple?


Una de las características agradables de una herramienta de integración continua (CI) es que se genera una compilación cada vez que se ingresa algo en el repositorio de control de origen.

Si eso no es algo que necesita, entonces probablemente sea mejor utilizar el programador de tareas de Windows o los trabajos cron.

Además, las herramientas de CI también vienen con un panel de control (web) y capacidades avanzadas de registro.

Su pregunta me parece más "¿por qué usaría una herramienta de CI?" Y luego "qué herramienta de CI debería usar". Si un script por lotes satisface sus necesidades, utilícelo. (Re) crear un entorno de compilación solo se vuelve más fácil si no necesita una herramienta de IC como componente adicional. Si desea una compilación activada por el control de código fuente, un panel, el almacenamiento de resultados de compilación anteriores u otro registro, use una herramienta de IC y evite desarrollar todas esas funciones en los guiones por lotes o de shell.



Hemos estado usando CruiseControl para CI en un proyecto de C ++. Si bien es lo único que usamos para ant, el script de construcción ant para CruiseControl solo inicia nuestro script de compilación normal, por lo que es muy simple y no hemos necesitado actualizarlo en mucho tiempo. Por lo tanto, el hecho de que CrusieControl esté basado en Java realmente no ha sido un problema para nosotros.

Los principales beneficios de usar algo como el control de crucero son

  • Una bonita página web que muestra el estado de compilación
  • Correo electrónico después de cada compilación o después de compilaciones fallidas
  • Construir automáticamente después de un compromiso con el sistema de control de origen
  • Un complemento de Firefox para monitorear el estado de compilación
  • Muestra el resultado de cualquier error de compilación.
  • Muestra qué archivos han cambiado desde la última compilación (bueno para ver qué desarrollador rompió el buid)

Por supuesto, usted mismo puede escribir un script que hace todo esto, pero ¿por qué funciona todo eso? A largo plazo, el costo inicial adicional de configurar CruiseControl (o algo similar) es probablemente mucho menor que el costo de mantener y actualizar un script de compilación CI personalizado.

Si todo lo que necesita es iniciar una compilación diaria y un script simple iniciado por cron es suficiente para sus necesidades, entonces, por supuesto, hágalo. Sin embargo, una de las ventajas de CI es que obtiene un informe de estado de compilación después de cada check in. Escribir un script para hacer eso requiere más trabajo y CruiseControl ya lo hace.


También puedes probar JetBrains ''TeamCity . Es un producto comercial, pero ofrece una licencia gratuita para hasta 20 configuraciones de compilación.


Usamos Hudson para CI y SonarQube para métricas de código. Están integrados, y Hudson tiene un puñado de complementos que ningún cronjob puede superar.

Un gran complemento es CI Game, que mantiene un puntaje sobre quién rompe las construcciones y quién se compromete sin romperlo. Hudson tiene complementos para jugar con VMWare, Selenium, SVN, CSV, Git. Tiene sindicación RSS, que puede ayudarte a automatizar aún más todo lo demás.

Hudson es genial ...