es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Azure DevOps Pipeline YAML – Array de dependencias filtradas en una condición

Estoy tratando de utilizar la sintaxis de “filtered array” en una condicional para una etapa.

“`
stages:
– stage: One
jobs:
– job:
steps:
– script: echo 'One'

<ul>
<li>stage: Two
dependsOn: One
jobs:

<ul>
<li>job:
steps:</li>
<li>script: echo 'Two' </li>
</ul></li>
<li>stage: Three
dependsOn: One
jobs:

<ul>
<li>job:
steps:</li>
<li>script: throw</li>
</ul></li>
<li>stage: Four
condition: containsValue(dependencies.*.result, 'Failed')
dependsOn:

<ul>
<li>One</li>
<li>Two</li>
<li>Three
jobs:</li>
<li>job:
steps:</li>
<li>script: echo 'Four'
“`

Según mi comprensión de la sintaxis de “filtered array”, esto debería acceder a la propiedad ‘result’ de todas las dependencias de la etapa, y dado que la etapa Three siempre falla, la expresión debería evaluar como verdadera. Sin embargo, cuando ejecuto el pipeline, la etapa 4 sigue siendo omitida y el único resultado que se muestra es ‘El trabajo fue omitido’.

He intentado depurar lo mejor que puedo, pero desafortunadamente no se puede acceder a las dependencias dentro de los contextos de trabajo o pasos (ya que en esos contextos se utiliza stageDependencies).

Agradecería mucho cualquier ayuda.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Según el YAML proporcionado, parece que la sintaxis del array filtrado en la “condición” para la Cuarta Etapa es correcta. Sin embargo, puede haber otros factores que estén causando que la etapa se omita.

    Aquí hay algunas cosas que debes verificar:

    1. Asegúrate de que el nombre de la Tercera Etapa esté escrito correctamente y coincida exactamente (incluyendo mayúsculas, minúsculas y espacios) en la “condición” para la Cuarta Etapa.
    2. Verifica que la Tercera Etapa realmente esté fallando y no esté teniendo éxito o siendo omitida por alguna razón. Puedes hacer esto agregando un “displayName” al trabajo en la Tercera Etapa y verificando los registros de ese trabajo.
    3. Verifica que la expresión de la “condición” se esté evaluando correctamente cambiándola temporalmente a algo como “condición: always()” y verificando si se ejecuta la Cuarta Etapa. Si lo hace, entonces el problema probablemente esté en la propia expresión de la “condición”.

    Si has intentado estos pasos y aún tienes problemas, puede que valga la pena comunicarse con el equipo de soporte de Azure DevOps para obtener más ayuda.

Comments are closed.