VSTS: mejor enfoque de ramificación y fusión para desarrollo – garantía de calidad – producción

Estoy usando VSTS para Source Control, CI y Release Management. Estoy intentando build código solo una vez y no por entorno o twig. La tubería de lanzamiento es: Dev -> QA -> PROD

Solo tengo una twig o base de código donde el equipo confirma los cambios. El CI desencadena una compilation cuando todo el código de una solución está listo. Creo un lanzamiento y lo promociono a través de la canalización hasta implementarlo en la producción.

Necesito saber si la única Sucursal estará bien para nosotros, así que si vamos a arreglar algunos errores o crear una nueva function simplemente crearemos una sucursal y confirmaremos el código diariamente a la Rama Maestra.

Estoy tratando de evitar el uso de 3 twigs una para cada entorno. Creo que CI y Release Management nos brindan la capacidad de crear versiones de versiones anteriores.

Entonces, ¿qué es Cons y Pros de ambos enfoques (3 twigs o Only One Master Branch) en mi caso?

Por lo general, solo debe haber una sucursal para una tubería de lanzamiento. Es posible que tenga varios entornos en una tubería, pero la versión implementada debería ser la misma ya que la versión de lanzamiento refleja un process de cómo su software se lanzó finalmente después de la compilation. Por ejemplo, la versión se implementa primero en el entorno de control de calidad para realizar testings y solo se puede implementar en el server de producción una vez que se pasan las testings en el entorno de control de calidad. No tiene sentido que QA use la compilation de una twig y Prod use la compilation de otra twig. Puede consultar este enlace para más detalles: ¿Dónde desplegar? Entornos en Microsoft Release Management .

Y para la sucursal, se trata de su process de desarrollo. Aquí hay algunas sugerencias de MSDN para su reference:

¿Cuándo debería el equipo agregar una twig?

Debe crear twigs en las siguientes situaciones:

  • Cuando debe liberar el código en un horario / ciclo diferente al de las sucursales existentes.

  • Cuando su código requiere una política de sucursal diferente. Si crea una nueva sucursal que tenga la nueva política, puede agregar valor estratégico a su proyecto.

  • Cuando la funcionalidad se entrega a un cliente y su equipo planea realizar cambios que no afectan el ciclo de lanzamiento planificado.

No debe crear una bifurcación para cada historia de usuario porque crea un alto costo de integración. Aunque Team Foundation Server facilita la bifurcación, la sobrecarga de la administración de sucursales puede volverse importante si tiene muchas sucursales.

Mira este enlace para más detalles: Branch estratégicamente

No necesita una twig por entorno pero debe hacerse algunas preguntas sobre su process de desarrollo.

¿Con qué frecuencia lanzas nuevas características? ¿Tiene testings integrales de unidad, integración, regresión y aceptación del usuario que están completamente automatizadas y se ejecutan en cada logging?

Si desarrolla nuevas funciones y no tiene un set completo de asombrosas testings automatizadas, entonces probablemente necesite al less 1 twig más. 1 para desarrollar nuevas características y 1 para admitir la base de código en vivo. Lea la guía de ramificación de ALM Rangers y vaya desde allí.