¿Cómo puedo hacer que TeamCity combine Merge en Pull Request antes de cada compilation?

Dado TeamCity y nuestro repository de Github y un flujo CI que coincida con Github Flow.

Quiero poder comenzar mi process de compilation combinando primero master en una twig de Pull Request.

Si eso tiene éxito, puede continuar con el rest de los pasos de compilation.

¿Se puede configurar esto en TeamCity con funcionalidad incorporada? ¿O tengo que crear un paso de compilation y escribir un script de shell que haga esto y devuelva éxito / error como mi primer paso?

En su mayor parte, es compatible con el lanzamiento de caja en TeamCity si tiene la intención de crear automáticamente todas las twigs de relaciones públicas.

Hay un artículo detallado sobre esto aquí: http://blog.jetbrains.com/teamcity/2013/02/automatically-building-pull-requests-from-github-with-teamcity/

La parte key es que su especificación de twig de raíz VCS usa el patrón de comodín +:refs/pull/(*/merge)

La parte "pull" significa que todas las requestes de extracción abierta califican como fuente, la parte "merge" significa que cada request de extracción se fusiona con la twig principal antes de ejecutar la configuration de compilation, que es exactamente lo que queremos en este caso (una alternativa es " head "para build la twig en aislamiento).

Hemos estado funcionando con éxito en nuestro entorno. En su escenario, puede desencadenar otras configuraciones de compilation (o una combinación automatizada en el maestro) en function del éxito de los pasos de compilation de la testing PR.

Recomiendo instalar el complemento mencionado en el artículo para actualizar automáticamente el estado de compilation en sus relaciones públicas, es útil.

Como seguimiento, revise la function de fusión automática de TeamCity: https://confluence.jetbrains.com/display/TCD9/Automatic+Merge

He trabajado con TeamCity solo durante un verano, no sé cada input y salida. Dicho esto, creo que un package C # /. Net nuget, sería el path a seguir. Puntos de bonificación si puede hacerlo en un guión de shell. Esta publicación podría ayudar un poco.

De lo contrario, esta página parecía que podría ser útil.

Espero que eso ayude

Que tengas un día maravilloso, y que estés bien!