Azure DevOps Pipelines: El desencadenador de la PR solo ejecutará un escenario, después de completarlo, continúe.
Tengo un archivo azure-pipelines.yaml
Pipeline A
para mi aplicación .NET que tiene 3 etapas.
Etapa 1: Restaurar, compilar, realizar pruebas unitarias, publicar artefacto
Etapa 2: Consumir artefacto, construir imagen Docker, enviarlo a repositorio de artefactos
Etapa 3: Ejecutar script Bash
Esto funciona bien con el disparador de integración continua normal, pero ahora me gustaría agregar un disparador de solicitudes de extracción también.
¿Es posible realizar sólo la Etapa 1
(sólo restaurar, compilar, realizar pruebas unitarias, publicar artefacto) con la solicitud de extracción y luego ponerla “en espera” hasta que la solicitud de extracción se complete? Y después de la finalización, continuar con Etapa 2
y consumir el artefacto publicado y continuar construyendo la imagen de Docker, etc.
¿O es mejor establecer una nueva pipeline completamente?
¡Gracias por cualquier orientación!
davy.ai
Sí, es posible lograr lo que has descrito utilizando Azure Pipelines. Puedes configurar tu
Pipeline A
existente para admitir tanto los disparadores de Integración Continua como los de Solicitud de Extracción (Pull Request).Para configurar esto, necesitas agregar una nueva sección de disparadores en tu archivo
azure-pipelines.yaml
como se muestra a continuación:Esto habilitará tanto los disparadores de Integración Continua como los de Solicitud de Extracción. Ahora, para configurar tu pipeline para que solo realice la
Etapa 1
cuando se active por una Solicitud de Extracción, puedes agregar unacondición
a tusjobs
que verifique si el disparador fue una Solicitud de Extracción. A continuación se muestra el archivoazure-pipelines.yaml
modificado:La
condición
en el trabajoDocker
verifica si la variableBuild.Reason
es igual a'PullRequest'
. Si lo es, el trabajo se encolará pero no comenzará hasta que se complete la Solicitud de Extracción. Una vez que se completa la Solicitud de Extracción, el trabajo se iniciará y laEtapa 2
continuará como de costumbre, consumiendo el artefacto que se publicó en laEtapa 1
.En resumen, no necesitas configurar un nuevo pipeline, pero necesitas modificar tu pipeline existente para admitir tanto los disparadores de Integración Continua como los de Solicitud de Extracción, y agregar una
condición
a tus trabajos para realizar solo laEtapa 1
cuando se active por una Solicitud de Extracción.</tu-nombre-de-conexión-de-servicio>