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.