Azure devops Azure DevOps变量的条件初始化不起作用
我是Yaml和AzureDevOps的新手,我正在尝试根据条件初始化变量Azure devops Azure DevOps变量的条件初始化不起作用,azure-devops,yaml,Azure Devops,Yaml,我是Yaml和AzureDevOps的新手,我正在尝试根据条件初始化变量 variables: - name: DisplayName ${{ if eq('$(env)', 'wh') }}: value: 'DisplayNAME-WH' ${{ if eq('$(env)', 'lw') }}: value: 'DisplayNAME-LW' 其中我的'env'是通过Azure DevOps中的UI传递的变量 问题我得到的是“DisplayName”仍然为空(未初
variables:
- name: DisplayName
${{ if eq('$(env)', 'wh') }}:
value: 'DisplayNAME-WH'
${{ if eq('$(env)', 'lw') }}:
value: 'DisplayNAME-LW'
其中我的'env'是通过Azure DevOps中的UI传递的变量
问题我得到的是“DisplayName”仍然为空(未初始化)
你能帮我吗
谢谢
Azure DevOps变量的条件初始化不起作用
根据报告:
在管道中,模板表达式变量(${{variables.var}}
)
在运行时开始之前,在编译时处理。宏语法
变量($(var)
)在运行时任务运行前得到处理
因此,我们不能在${{if eq('$(env)'wh')}
中使用$(env)
。这是因为${{if eq('$(env)'wh')}}
的语法是在$(env)语法之前解析的
为了解决这个问题,我们可以将变量定义为:
测试结果:
parameters:
- name: 'env'
default: 'wh'
type: string
values:
- wh
- lw
variables:
${{ if eq(parameters.env, 'wh') }}:
DisplayName: 'DisplayNAME-WH'
${{ if eq(parameters.env, 'lw') }}:
DisplayName: 'DisplayNAME-LW'
steps:
- script:
echo $(DisplayName)