Esto no es exclusivo de Grails o incluso Jenkins, pero esto es lo que puede hacer.
Configure un servidor de prueba funcional donde pueda implementar sus aplicaciones. Cree un trabajo de Jenkins para sondear el proyecto A
para cambios de SCM e impleméntelo en el servidor A
, y un trabajo para sondear el proyecto B
para cambios de SCM e impleméntelo en el servidor B
.
Crear una compilación indirecta, C
, que ejecuta pruebas funcionales contra el sistema combinado. Tenga en cuenta que probablemente no quiera arrancar ninguna de las bases de datos aquí, así que no use la fase de prueba de integración. Esto donde usarías algo como selenio. Asegúrese de bloquear las construcciones ascendentes A
y B
en compilaciones descendentes y el bloque C
en todas las compilaciones ascendentes.
De esta manera, ningún servidor se vuelve a implementar en el medio de una prueba.
En cuanto a las pruebas de integración, imagina que B
es como cualquier otro servicio web, como una base de datos o un servidor LDAP o algo por el estilo. Si quería una prueba de integración completa, simplemente configuraría un servidor para su ejecución de prueba y correría contra ella, ¿verdad? Hacer lo mismo. Usando su compilación B
u otra compilación, cree un trabajo de prueba de integración que conozca explícitamente sobre el servidor B
.