Un escenario frecuente cuando se trabaja con proyectos heredados es tener un único repositorio con todas nuestras soluciones y proyectos en su interior. Todo nuestro código vive en conjunto y cada desarrollador tiene acceso a todos los proyectos. Eso suena un poco aterrador, pero si aplicamos políticas de sucursales sólidas y revisiones de código, debería funcionar bien.
Otro problema que debemos resolver es cómo implementar la integración continua en cada proyecto. Afortunadamente, con Azure DevOps eso también parece bastante fácil: podemos crear múltiples canalizaciones y activarlas examinando los archivos que se han modificado, por lo que podemos construir cada proyecto de forma independiente solo cuando sea necesario.
Donde cada tubería se vería así:
Pero aquí está el problema: al imponer la validación de compilación en nuestras solicitudes de extracción de forma predeterminada, solo se activará una canalización (la primera canalización creada) incluso si los cambios que enviamos no están relacionados con esa canalización. Lo que veremos a continuación es nuestra canalización en verde que significa «validación de compilación aprobada», pero si miramos dentro, la compilación nunca se ejecutará.
La solución es configurar «validaciones de compilación» en consecuencia. Lamentablemente, esto está profundamente oculto en la configuración del proyecto de Azure DevOps:
Configuración del proyecto / Repositorios / <su Repo> / Pestaña Políticas / Sección Políticas de sucursal / <Su sucursal> / Sección de validación de compilación
Verás esto:
Al hacer clic en el botón Agregar, se le solicitará un formulario para crear una «Validación de compilación», elegirá una canalización, un filtro de ruta y otras configuraciones que reconocerá. Después de crear la validación de compilación, la verá habilitada:
En la sección de filtro de ruta, puede enumerar varias rutas, ya que debe estar separado por un punto y coma. Para las rutas excluidas, debe utilizar un signo de exclamación. Debe crear una validación de compilación para que cada canal se ejecute en consecuencia.
Y eso es todo, al enviar solicitudes de extracción, las canalizaciones correspondientes se activarán como validaciones de compilación. Si sus cambios afectan a más de un proyecto, es posible que vea que se ha ejecutado más de una validación, como debería ser.
Si tiene alguna otra solución o cualquier otro enfoque para este problema, no dude en compartir enlaces en la sección de comentarios. ¡Buena suerte! * Documentación sobre esto: https://docs.microsoft.com/en-us/azure/devops/repos/git/branch-policies