2012-09-28 13 views
11

Tenemos una instalación de TeamCity 7.1 que crea todas las sucursales desde un repositorio de GitHub.TeamCity building Solicitudes de extracción de Git/GitHub

GitHub tiene un enlace de notificación de regreso a TeamCity para activar una creación en el check-in. También tenemos TeamCity sondeando GitHub cada 120 segundos para verificar los cambios (en caso de que el servidor estuviera desconectado cuando se registró un cambio).

Nuestro desarrollo normal sigue un patrón común:

  1. crear una rama de maestro
  2. Commit a esa rama hasta que termine con una característica
  3. Cuando haya terminado, tire de maestro a fusionar todos los cambios y empuje a distancia
  4. Presentar una solicitud de extracción de GitHub para permitir que los administradores de fundirse en maestro

Todo funciona a la perfección (después de mucha búsqueda para obtener la configuración correcta) ...

El proceso anterior desencadena varias compilaciones en TeamCity y me gustaría saber si son necesarias. Normalmente vamos a terminar con:

  • Una acumulación de/refs/heads/nombre-sucursal
  • Una acumulación de/refs/tire/número/cabeza
  • Una acumulación de/refs/pull/número/fusionar

Naturalmente, la primera construcción es el último registro de entrada en la rama particular, y la segunda construcción es la solicitud de extracción, pero w ¿Cuál es el tercer build para?

+0

Normalmente, esto no sería un problema, pero ejecutar todo nuestro conjunto de pruebas RoR con pruebas de integración lleva unos ~ 10 minutos, por lo que no obtendremos comentarios sobre el estado de compilación durante 30 minutos. – asafb

Respuesta

3

Sus construcciones parecen redundantes. La manera más ahorrativa para organizar TeamCity construye de Feature-ramas en Git es el siguiente:

  1. Organizar la integración continua de su sucursal refs/heads/master. La encuesta de 120 segundos es bastante razonable aquí.
  2. Organice las construcciones nocturnas para cada refs/heads/feature-name sucursales. Según mi experiencia, solo algunas de las ramas de características requieren un sondeo de 120 segundos.

TeamCity 7.1 tiene una característica muy agradable a AutoTrigger característica-ramas, por lo que el paso (2) se puede fijar en un par de clics con una máscara como la rama refs/heads/feature-*.

No tiene sentido generar solicitudes de extracción ya que estarán cubiertas por compilaciones maestras.

+1

En relación con la creación de solicitudes de extracción, la nueva API de estado de compilación de GitHub nos permite mostrar el estado de compilación para una solicitud de extracción directamente en GitHub, que es un ahorro de tiempo masivo. Esto aparece cuando construimos la rama/pulls/1/head. – asafb

+1

Para los interesados, una de las configuraciones clave que cambiamos fue la especificación de sucursal como se indica arriba (ligeramente modificada), y ** eliminamos la generación del disparador en cada check-in ** opción que causaba la mayor parte de nuestros dolores de cabeza – asafb

13

La tercera compilación es en realidad la más valiosa, es el resultado de la combinación automática de solicitudes de extracción (fusión que ocurre cuando se presiona el botón en github).

+0

Esto también significa esa fusión del maestro a la rama de solicitud de extracción es redundante. –

Cuestiones relacionadas