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.

Azure DevOps: Cómo pasar una variable a una plantilla leída desde un grupo de variables de biblioteca.

Tengo definido un grupo de variables en la biblioteca del pipeline, llamado ‘template-variable-group’.

Todo lo que estoy tratando de lograr aquí es pasar el valor de la variable ‘my-temp-var’ (en este caso, como puede ver, su valor es ‘my-template-value’) a una plantilla del archivo yaml.

Tengo un pipeline basado en yaml de la siguiente manera.

variables:
– group: template-variable-group

name: $(date:yyyyMMdd)$(rev:.r)

stages:
– stage: Build

jobs:
  - job: buildWebApp
    displayName: Construir pipeline de lanzamiento para el servicio de descuento en la rama principal

    steps:
    - script: |
        echo Aquí vamos
      displayName: 'Script de línea de comando'

    - template: template.yaml
      parameters:
        variableToTemplate: ${{variables['my-temp-var']}}

Y el archivo template.yaml es el siguiente.

parameters:
variableToTemplate:

steps:

  • task: CmdLine@2
    inputs:
    script: |
    echo Hola Hola Hola Hola Hola Hola
    echo ${{ parameters.variableToTemplate }}
    displayName: ‘Ejecutar un script de dos líneas’

No puedo hacer eso.

Como puede ver, ese valor no está llegando a la plantilla. ¿Qué me falta?

Vi esta respuesta de SO, pero no pareció ser de ayuda.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que su grupo de variables está definido correctamente en la biblioteca de canalizaciones, pero es posible que no lo esté referenciando correctamente en su archivo YAML. Aquí hay algunas cosas que puede intentar:

    1. Verifique que el nombre de la variable en su grupo de variables coincida con el nombre al que se está haciendo referencia en su archivo YAML (mi-temporada-var). Asegúrate de que no haya errores tipográficos ni espacios extras.
    2. Intente hacer referencia al grupo de variables directamente en lugar de usar el objeto variables. Por ejemplo:

    - template: template.yaml
      parameters:
        variableToTemplate: $(mi-temp-var)
    
    1. Si aún no puede hacer que la variable se pase a la plantilla, intente establecer la variable directamente en el archivo YAML y vea si se pasa correctamente:
    variables:
      mi-temp-var: mi-valor-de-plantilla
    
    etapas:
      - etapa: Construir
        trabajos:
          - trabajo: buildWebApp
            pasos:
              - template: template.yaml
                parameters:
                  variableToTemplate: $(mi-temp-var)
    

    Si esto funciona, puede haber un problema con la forma en que se define o se hace referencia al grupo de variables en su canalización.

Comments are closed.