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.

¿Cómo describo los trabajos dinámicamente en Azure DevOps?

Tengo varios trabajos para diferentes plataformas que me gustaría ejecutar en paralelo. Me gustaría construir un conjunto diferente de plataformas para diferentes situaciones (es decir, compilación completa, smoke, pull request, etc.). ¿Cómo puedo hacer que una lista de trabajos sea dinámica basada en variables?

Por ejemplo, si esta es una de las implementaciones “con código duro”:

trabajos:

  • trabajo: Plataforma1
    pool: Piscina1
    pasos:

    • plantilla: minimal_template.yml
      parámetros:
      BuildTarget: Plataforma1
  • trabajo: Plataforma2
    pool: Piscina1
    pasos:

    • plantilla: minimal_template.yml
      parámetros:
      BuildTarget: Plataforma2
  • trabajo: Plataforma3
    pool: Piscina2
    pasos:

    • plantilla: minimal_template.yml
      parámetros:
      BuildTarget: Plataforma3

¿Cómo podría extraer en su lugar una colección de conjuntos de variables, es decir,

[[Plataforma1, Piscina1], [Plataforma2, Piscina1], [Plataforma3, Piscina2]]
Y ejecutar eso en un pipeline como:

trabajos:

?? (Para cada plataforma en plataformas) ??

  • trabajo: $ (platform [0])
    piscina: $ (platform [1])
    pasos:

    • plantilla: minimal_template.yml
      parámetros:
      BuildTarget: $ (platform [0])
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para hacer la lista de trabajos dinámica en función de variables, puedes definir una variable que contenga una colección de combinaciones de plataforma y grupo. Esto se puede hacer utilizando la sintaxis YAML para listas y mapas. Por ejemplo:

    variables:
      platforms:
      - name: Plataforma1
        pool: Grupo1
      - name: Plataforma2
        pool: Grupo1
      - name: Plataforma3
        pool: Grupo2
    
    jobs:
    - ${{ each platform in variables.platforms }}:
      - job: ${{ platform.name }}
        pool: ${{ platform.pool }}
        steps:
        - template: minimal_template.yml
          parameters:
            BuildTarget: ${{ platform.name }}
    

    Esto iterará sobre la lista de combinaciones de plataforma y grupo definida en la variable variables.platforms, y creará un trabajo para cada uno con el nombre correspondiente de la plataforma y el nombre del grupo. Se utiliza la expresión each para iterar sobre la lista, y la sintaxis ${{ }} se utiliza para interpolar los valores en el archivo YAML.

Comments are closed.