¿Cómo puedo usar condicionalmente un contenedor en Azure Pipelines?
Tengo un trabajo AzP con una matriz donde se necesita ejecutar en un contenedor (prueba de compilador antiguo). ¿Cómo puedo ejecutar condicionalmente el trabajo dentro del contenedor? Intenté lo siguiente pero eso no parece funcionar, es decir, el contenedor nunca se usa aunque estoy bastante seguro de que seguí todas las instrucciones de la documentación.
etapas:
- Etapa: Prueba
trabajos:
- trabajo: 'Linux'
estrategia:
matriz:
GCC_10:
CXX: g++-10
IMAGEN_VM: ubuntu-20.04
GCC_9:
CXX: g++-9
IMAGEN_VM: ubuntu-20.04
Clang_3_7:
CXX: clang++-3.7
IMAGEN_VM: ubuntu-20.04
CONTENEDOR: ubuntu:16.04
grupo:
imagenVM: $(IMAGEN_VM)
${{ if variables['CONTENEDOR'] }}:
contenedor:
imagen: $[ variables['CONTENEDOR'] ]
opciones: "--name ci-container -v /usr/bin/docker:/tmp/docker:ro"
davy.ai
Para ejecutar condicionalmente un trabajo dentro de un contenedor en Azure Pipelines usando un pipeline YAML, puede utilizar la instrucción
if
para verificar el valor de la variableCONTAINER
.Aquí hay un ejemplo de cómo modificar el código YAML:
Para habilitar el uso de un contenedor para el trabajo, debe agregar el campo
container
y establecer el valor en las condiciones a verificar. Aquí, estamos usando${{ if variables['CONTAINER'] }}:
para verificar si la variableCONTAINER
está configurada, y si lo está, estamos ejecutando el trabajo dentro del contenedor especificado por el campoimage
.Tenga en cuenta que la instrucción
if
debe estar envuelta con${{ }}:
para evaluarse dinámicamente durante la ejecución.