我正在尝试将变量传输到模板。我试过了: $ {{variables.portalPath}} 和 $(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 }}
答案 0 :(得分:0)
示例管道未正确声明变量值。
不确定输入问题时这是否只是一个错字,因为管道会因当前变量声明为预先失败:
variables:
- name: portalPath value:"sdfsdf"
此模板对我有用:
variables:
- name: portalPath
value: "sdfsdf"
extends:
template: my-template.yml
parameters:
portalPath: $(portalPath)
答案 1 :(得分:0)
在解释传递给portalPath
的值时,运行时变量尚不可用。然后,template参数将收到运行时变量$(portalPath)。
与其以运行时语法 传递变量,而是使用表达式语法 ${{ variables.environment }}
:
parameters:
- name: portalPath # don't pass run-time variables
steps:
- script: echo ${{ parameters.portalPath }}
- 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}。
您还可以查看以下类似问题: