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.

Permita el check-out fallido en Azure DevOps YAML.

Quiero hacer un checkout condicional de la rama B si no es posible hacer el checkout de la rama A (por ejemplo, si no existe).


- checkout: self - checkout: git://stackoverflow/_git/MuhRepo@A continueOnError: true - checkout: git://stackoverflow/_git/MuhRepo@B condition: failed()

Desafortunadamente, en lugar de seguir ejecutando el pipeline, se bloquea con el siguiente mensaje:

Este pipeline no es válido. No se pudo obtener la última versión del origen para el repositorio MuhRepo alojado en Azure Repos, utilizando la referencia refs/head/A.

Preferiría evitar llamar a un script bash que haga el trabajo de git por mí, ya que parecería ir en contra del espíritu de DevOps.

¡Cualquier consejo será apreciado!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para hacer una comprobación condicional y verificar la rama B si no se puede verificar la rama A, puede seguir los siguientes pasos en su archivo azure-pipelines.yml:

    steps:
    - checkout: self
    - script: |
        if git show-ref --verify --quiet refs/heads/A; then
          git checkout A
        else
          git checkout B
        fi
    

    Este script verifica si la rama A existe y, si lo hace, la verifica. Si la rama A no existe, verifica la rama B en su lugar. Esto debería ayudarlo a evitar errores que bloqueen la tubería (pipeline) y lograr el comportamiento deseado de la comprobación condicional sin tener que recurrir a usar un script bash separado.

Comments are closed.