将变量传输到模板

Transfer variable to template

我正在尝试将变量传输到模板。我试过了: ${{ variables.portalPath }} 和 $(门户路径)

但是没有值被转移。如果我不使用变量而只使用字符串,它会起作用:

管道:

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"

模板:

parameters:
 - name: portalPath 
   type: string

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

示例管道未正确声明变量值。

不确定这是否只是输入问题时的错字,因为管道应该预先失败,您当前的变量声明为:

variables:
  - name: portalPath value:"sdfsdf"

这个模板适合我:

variables:
  - name: portalPath
    value: "sdfsdf"

extends:
  template: my-template.yml
  parameters:
    portalPath: $(portalPath)
在解释传递给 portalPath 的值时,

Run-time 变量尚不可用。然后模板参数将接收一个 run-time 变量 $(portalPath).

不是在run-time语法中传递变量,而是使用表达式语法 ${{ 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

如果还是不行。这里的解决方法是在您的工作开始时简单地引入一个新变量(使用 powershell 或 bash):

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

从那时起,您可以在后续步骤中使用 ${PortalPath }。

你也可以看看下面类似的问题: