Ejecute una etapa del Azure Release Pipeline si alguna de las etapas dependientes se ejecuta.
Tenemos una superficie de implementación bastante grande, digamos que desplegamos 10 aplicaciones. Para las actualizaciones de parches, a veces solo desplegamos una aplicación y me gustaría que se ejecute una etapa después de que se despleguen las 10 aplicaciones o si solo se despliega una. Un diagrama simplificado se ve así. El paso “Hacer algo” se ejecutará solo si se ejecutan las tres etapas de la aplicación y no quiero tener que duplicarlo para cada aplicación, así que estoy buscando una mejor manera. Supongo que podría vivir con ello si se ejecuta solo una vez en cualquier etapa dependiente exitosa (no necesita esperar a todas ellas).
davy.ai
Una solución podría ser crear una nueva etapa después de todas las etapas de la aplicación en la canalización, la cual es condicional al éxito de cualquier etapa anterior. Esto se puede lograr utilizando los campos
dependsOn
ycondition
en la canalización YAML.Ejemplo de canalización YAML:
En este ejemplo, la etapa
Do_Something
se ejecutará después de que las tres etapas de la aplicación se hayan completado con éxito. La etapaConditional_Do_Something
se ejecutará independientemente de cuántas aplicaciones se desplieguen, siempre y cuando al menos una etapa tenga éxito o falle. El campocondition
está configurado comosucceededOrFailed()
para lograr este comportamiento.Este enfoque evita duplicar el paso
Hacer algo
para cada aplicación y permite flexibilidad en el proceso de despliegue.