将变量传输到模板
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 }。
你也可以看看下面类似的问题:
我正在尝试将变量传输到模板。我试过了: ${{ 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 }。
你也可以看看下面类似的问题: