sitio - register gitlab
Gitlab-Creación de solicitudes de fusión en el servidor CI (1)
Tengo GitLab 6.3 y TeamCity 8 y también necesito construir ramas de características. Tenemos el siguiente flujo de trabajo (se basa en git-flow, pero se modificó ligeramente de acuerdo con nuestro ciclo de publicación).
Entonces, tenemos una rama de development
y una rama de características de push con un nombre específico dev/feature-name-here
.
A continuación, creamos una solicitud de fusión en GitLab desde dev/feature-name-here
hasta el development
.
TeamCity está configurado para ejecutar automáticamente compilaciones para cada sucursal con la siguiente refspec: +:refs/heads/dev/(*)
refs +:refs/heads/dev/(*)
para que podamos ver una compilación para la feature-name-here
rama feature-name-here
se inicia automáticamente.
A continuación, tengo un script personalizado que está incrustado en la página de solicitud de combinación de GitLab. Se hace lo siguiente.
- Detecta una rama de origen y destino mirando una página de MR
- Con la API REST de TeamCity se enumera la compilación que pertenece a una rama de destino (en TeamCity 8 podemos asignar una ID de configuración de compilación personalizada para la compilación, por lo que utilizamos algunos nombres semánticos como
devUnit
,devIntegration
,devWhatever
, etc ...) - Crea una tabla que contiene imágenes de estado de compilación para las ramas de origen y destino para cada configuración de compilación relacionada.
Ahora se ve así:
Ahora, este enfoque tiene algunos inconvenientes, como si uno actualiza una rama con otro empuje que no puedo entender en la página de GitLab si los nuevos compromisos ya están construidos o estoy viendo el estado de compilación anterior, por lo que debo hacer clic en el enlace de compilación y verificar en TeamCity
Estamos utilizando GitLab para gestionar nuestros repositorios. Estamos tratando de seguir los procesos de GitFlow y, como parte de eso, nos gustaría poder construir y ejecutar las pruebas contra cualquier solicitud de combinación de forma automática en TeamCity.
Por lo que puedo ver, esto es posible en GitLab CI, pero pasar a eso no es una opción realista para nosotros.
He visto tutoriales sobre cómo lograr esto en GitHUB usando una especificación de rama como + refs / pull / * / merge - ¿GitLAB crea una especificación de rama similar?
Estamos utilizando la versión 4.2 de GitLab, pero podemos actualizarla si es necesario para esta función y la versión 8 de TeamCity