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.

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)


Tags:  ,

Answer

  1. Avatar for davy.ai

    Puedes utilizar la tarea bash para establecer el valor de la variable one como el primer elemento del array array:

    stages:
      - stage: pretrabajo
        jobs: 
         - job: convertir_entrada
           continueOnError: false
           steps: 
             - script: |
                  htring=" ${ {parameters.envlist} } "
                  echo $htring
                  IFS=', ' read -r -a array <<< "$htring"
                  echo "${array [0]}"
                  htringz="${array [0]}"
           displayName: primer pase de variable
         - bash: echo "##vso[task.setvariable variable=one;isOutput=true;]${array [0]}"
           displayName: establecer nuevo valor de variable
         - script: |
               echo ${{ variables.one }} # outputs initialValue
               echo $(one)
    

Comments are closed.