Al trabajar con los pipelines de Azure DevOps usando un archivo YAML en lugar del modo clásico y asistido quizá tengas un problema en cuestiones de aprender la sintaxis y cosas por el estilo pero lo que es bien cierto es que el control que te dan es muy superior además de que sirve de mucho para modificar rápidamente.
De todas las opciones que se pueden manejar con los pipelines la de los stages es quizá mi favorita por mucho y es muy útil para poder segmentar los entornos o acciones que quieres trabajar. Derivado de esta parte, una de las cosas que puedes lograr es la aprobación manual, es decir, una aprobación que suceda únicamente cuando alguien dentro de tu equipo con la autorización adecuada apruebe la continuación de las tareas.
Pero antes de continuar, hagamos una pausa y veamos por partes lo que haremos. Comienza por crear un pipeline en blanco con unas cuantas etapas o stages.
stages: - stage: build jobs: - job: Job_1 - job: Job_2 - stage: test jobs: - job: Job_3 - job: Job_4 - stage: deploy jobs: - job: Job_5 - job: Job_6 |
Al ejecutar esto podrás ver una separación visual que te resultará muy familiar si ya has utilizado el modo clásico.

Cada una de etapas puede operar de manera diferente, por ejemplo en la etapa de test podemos hacer que solo bajo previa autorización manual el flujo continúe.
Comienza por seleccionar las opción de environments en la categoría de Pipelines.

Ahora selecciona la opción de crear uno nuevo. Podrás ver que ya hay uno existente llamado dev.

Pon el nombre que tú quieras y selecciona la opción de Ninguno como recurso asignado.

Dentro del nuevo ambiente recién creado, selecciona la opción de Approvals and checks.

Agrega una nueva regla, podrás ver que hay muchas opciones, de hecho, si eres un poco curioso, te recomendaría que explores un poco, aquí en mis ratos libres he buscado cosas nuevas por hacer, quizá puedan salir algunos artículos adicionales de lo que he explorado, en fin, por ahora selecciona la primera aprobación, la manual.

Ya sé, ya sé es muy triste ser tu único aprobador, se siente más soledad que en un desierto pero ni modo, por ahora es lo que hay.

Ya con todo esto listo, puedes regresar al pipeline y modificar el archivo. Tomaremos la etapa de test para poder jugar con la aprobación manual.
stages: - stage: build displayName: 'Build stage' jobs: - job: Job_1 steps: - script: echo 'Esta es la primera tarea' - job: Job_2 steps: - script: echo 'Esta es la segunda tarea' - stage: test displayName: 'Test stage' jobs: - deployment: 'Testing' displayName: My Deployment environment: 'aprobadores' strategy: runOnce: deploy: steps: - script: echo 'Esta tarea sucede solo on autorización' - stage: deploy displayName: 'Deploy stage' jobs: - job: Job_5 steps: - script: echo 'Ya casi pasamos al final' - job: Job_6 steps: - script: echo 'Se acabó el proceso!!' |
El resultado de esto será algo así en tu pipeline.

Puedes ver en la imagen que aparece en la etapa adecuada la opción de esperando y aparece en medio la opción de revisar. Si la seleccionas, aparecerá otra opción.

Lo apruebas, agregas un comentario (una muy buena idea hacerlo aunque sea en pruebas) y está listo. El proceso procederá de manera habitual.
Así queda ya todo listo, hecho para poder tener mucho más control en tus procesos de despliegue de nuevas versiones. Quizá suena a un posible cuello de botella y puede serlo pero con un poco más de experiencia y práctica esto aporta mucha más seguridad a tus nuevos lanzamientos.