¿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
- plantilla: minimal_template.yml
- trabajo: Plataforma2
pool: Piscina1
pasos:- plantilla: minimal_template.yml
parámetros:
BuildTarget: Plataforma2
- plantilla: minimal_template.yml
- trabajo: Plataforma3
pool: Piscina2
pasos:- plantilla: minimal_template.yml
parámetros:
BuildTarget: Plataforma3
- plantilla: minimal_template.yml
¿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])
- plantilla: minimal_template.yml
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:
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óneach
para iterar sobre la lista, y la sintaxis${{ }}
se utiliza para interpolar los valores en el archivo YAML.