merge - Ejecutar la compilación de CI en la combinación de solicitud de extracción en TeamCity
continuous-integration bitbucket (4)
Tengo una compilación de CI que se configura en TeamCity que se activará cuando se realice una solicitud de extracción en BitBucket (git). Actualmente se basa en la rama de origen de la solicitud de extracción, pero sería más significativo si pudiera generar la solicitud de extracción combinada.
Mi investigación me ha dejado con las siguientes soluciones posibles:
- El script se ejecuta como parte de la compilación, en lugar de hacerlo de esta manera si es posible
- Complemento servidor / agente: no se encontró suficiente documentación para averiguar si esto es posible
¿Alguien ha hecho esto antes en TeamCity o tiene sugerencias sobre cómo puedo lograrlo?
Actualización: (basado en la respuesta de John Hoerr)
Solución alternativa: olvídese de TeamCity haciendo la fusión, use los enlaces web de BitBucket para crear una rama fusionada como lo hace github y siga la respuesta de John Hoerr.
Me parece que la funcionalidad que está buscando se proporciona a través de la función ''Remote Run'' de TeamCity. Esto es básicamente una compilación personal con los orígenes combinados y la rama de fusión objetivo.
https://confluence.jetbrains.com/display/TCD8/Branch+Remote+Run+Trigger
"Estas sucursales son sucursales de control de versión regular y TeamCity no las administra (es decir, si ya no necesita la sucursal, necesitará eliminar la sucursal utilizando los medios de control de versión regular).
Por defecto, TeamCity activa una compilación personal para el usuario detectado en el último compromiso de la rama. También puede especificar el usuario de TeamCity en el nombre de la rama. Para hacerlo, use un marcador de posición TEAMCITY_USERNAME en el patrón y su nombre de usuario de TeamCity en el nombre de la rama, por ejemplo, el patrón de ejecución remota / TEAMCITY_USERNAME / * coincidirá con una rama de ejecución remota / joe / my_feature y comenzará una compilación personal para TeamCity usuario joe (si tal usuario existe) ".
Luego, configure un Webhook personalizado de "solicitud de extracción" en Bitbucket.
https://confluence.atlassian.com/display/BITBUCKET/Tutorial%3A+Create+and+Trigger+a+Webhook
Por lo tanto, para su caso de uso particular con la integración de BitBucket, podría utilizar el WebHook que creó y luego tener un script de shell / bash (según el sistema operativo de su TeamCity Server) que ejecuta los comandos git de ejecución remota automáticamente, lo que a su vez activará automáticamente TeamCity Remote Run CI se basa en su servidor. Luego podrá ir a la interfaz de usuario de TeamCity, + HEAD: remote-run / my_feature branch, y ver los resultados de Remote Run en función de cada característica, y confiar en los resultados de compilación del código que combina con su Línea principal de código.
Parece que BitBucket / Stash crea sucursales para solicitudes de extracción en:
refs / pull-request // from
Debería poder configurar una ejecución remota para esa ubicación, ya sea mediante la función Ejecutar desde rama de Teamcity o mediante un enlace de recepción de HTTP en BitBucket / Stash.
También puede usar este complemento: https://github.com/ArcBees/teamcity-plugins/wiki/Configuring-Bitbucket-Pull-Requests-Plugin
(Revelación completa: soy el principal contribuyente: P, y lo uso todos los días)
Agregue una especificación de rama refs/pull-requests/*/merge
a la raíz VCS del proyecto . Esto hará que TeamCity supervise la salida combinada de las solicitudes de extracción para la rama predeterminada.