La pasantía de variables en Azure DevOps yaml utilizando “##vso[task.setvariable” no funciona.
En la siguiente etapa yaml (código dado abajo), estoy tratando de convertir el parámetro envList a nombres de variables específicos.
Por ejemplo, envList = “NameDevEnv, NameQAEnv, NameStageEnv, NameProdEnv”
Estoy tratando de pasar NameDevEnv, NameQAEnv, NameStageEnv y NameProdEnv a variables/parámetros separados en yaml y luego pasar esos nombres a plantillas para que se creen esos env con los nombres especificados.
El siguiente código no está imprimiendo el valor correcto para la variable one. Es decir, espero que la última instrucción, echo $(one), imprima NameDevEnv.
Por favor, asesore/ayude.
Gracias.
etapas:
- etapa: preTrabajo
trabajos:
- trabajo: convertir_entrada
continuarEnError: false
pasos:
- script: |
htring="${{parameters.envlist}}"
echo $htring
IFS=', ' leer -r -a array <<< "$htring"
echo "${array[0]}"
htringz="${array[0]}"
echo ${{ variables.one }} # el resultado es initialValue
echo $(one)
echo $htringz
## $htringz = $htring.split(",")[0]
nombreVisualización: pasaje de primer variable
- bash: echo "##vso[task.setvariable variable=one;isOutput=true;]$htringz"
nombreVisualización: establecer valor de nueva variable
- script: |
echo ${{ variables.one }} # el resultado es initialValue
echo $(one)
davy.ai
Puedes utilizar la tarea
bash
para establecer el valor de la variableone
como el primer elemento del arrayarray
: