Pregunta

Nuestro software está construido en plataformas Linux y Windows. Dependiendo de la preferencia del desarrollador, se desarrolla y prueba una contribución en cualquiera de las plataformas y luego se compromete con nuestro repositorio de subversión. Luego resulta que la contribución no se basa en la otra plataforma, y ??se debe hacer una solución. La corrección en la otra plataforma puede volver a romper la compilación en la plataforma original, y así sucesivamente.

Prefiero ver que también se construye una contribución (y se prueba la regresión) en la otra plataforma antes de comprometerse. Tenemos un servidor de compilación continua (CruiseControl), pero ese servidor construye desde el repositorio. Estoy buscando una solución donde el servidor de compilación continua se construye en la otra plataforma como una comprobación previa a la confirmación y luego confirma las cosas si la compilación y la prueba tienen éxito.

¿Alguna sugerencia?

¿Fue útil?

Solución

Matheiu Godlewski ha hecho una buena sugerencia en CruiseControl wiki

Si combina su sugerencia con el elemento veto , creo que usted debe establecerse.

Otros consejos

Teamcity maneja la confirmación previamente probada, es posible que pueda hacer algo con las nuevas características de encadenamiento de compilación en 4.0 ( http://www.jetbrains.com/teamcity/features/newfeatures.html ). Los agentes son multiplataforma y pueden configurarse para ejecutar solo bits particulares de la compilación, por lo que posiblemente podrían configurarse para ejecutar solo un subconjunto de pruebas.

Tenga en cuenta que en realidad no he hecho esto :)

Puede ser más fácil tener dos ramas, una donde las personas se registran y otra en la que fusionan sus cambios después de haber pasado la integración continua.

Utilizamos una plataforma de prueba y compilación personalizada que podría implementarse de forma remota en múltiples sistemas operativos (y múltiples productos de base de datos en múltiples sistemas operativos). Esto se hizo como una compilación nocturna con una regla que corrige los errores a la mañana siguiente.

No es completamente continuo entonces, pero eso es potencialmente mucho trabajo por hacer en un enlace previo a la confirmación. Especialmente si su repositorio de control de origen bloquea los archivos afectados durante la ejecución del enlace previo al compromiso.

Creo que hay una diferencia entre una prueba de integración continua que se ejecuta durante el día, por confirmación, y una prueba de integración del sistema que se ejecuta todas las noches.

Douglas Leeder sugirió una "integración" rama - lo bueno de esto es que es posible automatizar. Si pasan las pruebas, combínelas con el 'tronco'.

Algunos sistemas de control de versiones (p. ej., bzr / hg / git) lo hacen más fácil que otros, pero es posible en la mayoría.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top