visual studio microsoft español descargar community c++ continuous-integration build-automation build-server

studio - Servidor de integración continua para C++-¿Qué pasa con las dependencias de la biblioteca?



visual studio installer (3)

Ciertamente, buildbot y muchas máquinas virtuales son el camino a seguir con esto. Tenemos un servidor VMWare ESX que aloja muchos esclavos de compilación que durante la noche compilan nuestra aplicación. Luego, la aplicación se prueba en otra máquina virtual (no en el esclavo de compilación y solo tiene una instalación de sistema operativo predeterminada) para verificar que funcione y que todas las dependencias estén empaquetadas.

Lo bueno que me gustaría hacer es hacer que la fase de tiempo de ejecución de la prueba sea un paso automatizado, pero aún no se me ha dado el tiempo para hacerlo.

Actualmente estoy investigando una buena configuración para un servidor de integración continua que pueda construir varias aplicaciones C ++ para varias distribuciones de Linux.

Mi pregunta principal es ¿cómo otros usuarios aquí han manejado las diferencias en las bibliotecas del sistema entre las distribuciones de Linux?

Si bien podría ser relativamente fácil crear dependencias directas como las bibliotecas de UI junto con una aplicación, las dependencias "indirectas" como glibc parecen un gran problema si tuvieran que construirse junto con la aplicación cada vez. Por lo tanto, estoy pensando en mover la ejecución de compilación real a una máquina virtual separada para cada distribución, por ejemplo, utilizando rlogin para ejecutar los comandos. Mi objetivo es evitar las incompatibilidades binarias entre las versiones de la biblioteca de la máquina de compilación y las implementadas en las distribuciones de destino.

¿Alguien aquí tiene alguna experiencia con este proceso y podría decir si lo anterior parece un enfoque factible?


Usamos Jenkins (Integración contigua) y CMake (sistema de compilación) para este propósito. Jenkins es similar a Buildbot, es decir, también tiene buildmaster y buildslaves. Actualmente tengo configurados 8 esclavos para construir en 4 plataformas diferentes (FC8, FC10, FC12 y Windows 7). Construimos binarios de depuración y lanzamiento, por lo que dediqué un esclavo para cada plataforma y tipo de compilación.

En cuanto a las bibliotecas de terceros como Qt & Boost, las compilé en cada plataforma y las registré en un repositorio separado.

@esavard: Usamos CMake 2.8 para hacer una compilación cruzada, no he usado minigw pero una búsqueda rápida en Google indica que es posible. Aquí hay un enlace a un tutorial para compilar de forma cruzada para Windows en Linux usando CMake y miniGW.

No he usado Buildbot y no puedo comentar sobre sus características, pero pensé que debería mencionar una alternativa que estamos usando actualmente.

Espero que esto ayude.


Buildbot tiene la noción de buildmasters y buildslaves .

Un buildmaster se encarga de mostrar la GUI web, enviar correos electrónicos, desencadenar construcciones y otras tareas de mantenimiento. Los buildslaves esperan en el buildmaster y, cuando se les ordena, realizan compilaciones.

Hemos creado buildbot para construir en varias plataformas diferentes, algunas de ellas máquinas virtuales, y está funcionando bien para nosotros.