J'essaye de transférer une variable vers un modèle. J'ai essayé: $ {{variables.portalPath}} et $ (portalPath)

Mais aucune valeur n'est transférée. Si je n'utilise pas de variable mais juste une chaîne, cela fonctionne:

Pipeline:

trigger:
- none

variables:
  - name: portalPath value:"sdfsdf"

extends:
  template: azure-pipelines-build-react-portal-template.yml
  parameters:
    portalPath: "I WOULD LIKE TO REPLACE THIS WITH VARIABLE"

Modèle:

parameters:
 - name: portalPath 
   type: string

steps:
  - script: echo ${{ parameters.portalPath }}
1
Thomas Segato 20 oct. 2020 à 13:02

2 réponses

Meilleure réponse

Les variables d'exécution ne sont pas encore disponibles au moment où la valeur transmise à portalPath est interprétée. Le paramètre de modèle recevrait alors une variable d'exécution $ (portalPath).

Au lieu de passer la variable dans la syntaxe d'exécution mais utilisez la syntaxe d'expression ${{ variables.environment }}:

Template.yml

parameters:

- name: portalPath # don't pass run-time variables

steps:
  - script: echo ${{ parameters.portalPath }}

Azure-pipelines.yml

- stage: QA

  variables: 

    PortalPath : sdfsdf

  jobs:

  - template: azure-pipelines-build-react-portal-template.yml

    parameters:

      environment: ${{ variables.environment }} # use expression syntax

Si cela ne fonctionne toujours pas. Une solution de contournement ici consiste simplement à introduire une nouvelle variable dans votre au début de votre travail (avec powershell ou bash):

- powershell: Write-Host "##vso[task.setvariable variable=PortalPath ]${{ parameters.portalPath }}"

À partir de là, vous pouvez utiliser $ {PortalPath} dans vos étapes ultérieures.

Vous pouvez également jeter un œil à la question similaire ci-dessous:

0
PatrickLu-MSFT 21 oct. 2020 à 08:37

L'exemple de pipeline ne déclare pas correctement la valeur de la variable.

Je ne sais pas s'il s'agit simplement d'une faute de frappe lors de la saisie de la question car le pipeline devrait échouer dès le départ avec votre déclaration de variable actuelle de:

variables:
  - name: portalPath value:"sdfsdf"

Ce modèle fonctionne pour moi:

variables:
  - name: portalPath
    value: "sdfsdf"

extends:
  template: my-template.yml
  parameters:
    portalPath: $(portalPath)
0
Ben T 21 oct. 2020 à 01:57