github teamcity

Cree solicitudes de extracción para una rama específica utilizando TeamCity y Github



(2)

Quiero que TeamCity genere todas las solicitudes de extracción a una rama objetivo específica, por ejemplo, develop .
Por lo tanto, quiero construir las siguientes solicitudes de extracción:

develop...foo_branch develop...bar_branch

y omita esto:

master...foo_branch master...bar_branch

En TeamCity puedo definir la branch specification para construir todas las solicitudes de extracción:

+:refs/pull/*/head

o definir filtro por rama fuente:

-:refs/heads/(spikes-*)

Pero necesito filtrar por rama de destino . ¿Es posible?


Actualmente no es posible diferenciar las ramas de solicitud de extracción en función de su rama objetivo en TeamCity. Mire / vote por la solicitud https://youtrack.jetbrains.com/issue/TW-43759 que está prevista para la próxima versión.


He escrito un guión para solucionar este problema. Puede ejecutarse como uno de los primeros pasos de compilación en la configuración de compilación de TC. El script solicitará los detalles de la solicitud de extracción a Github, analizará la respuesta e inyectará los nombres de las ramas de origen y destino como parámetros de TeamCity y variables de entorno. En los siguientes pasos de compilación, podrá abortar la compilación o hacer lo que necesite en función de estas variables.

https://gist.github.com/dzzh/a6d8631e9617777fb5237bc9ec7b356b

Para que el script funcione, deberá enviar el ID de PR como un argumento de línea de comandos. Usamos la refspec recomendada (refs / pulls / * / head) para ejecutar nuestras compilaciones, extraigo la ID de PR e invoco el script con ella.