Azure YAML if-else 总是失败
Azure YAML if-else always fail
我最近正在使用 Azure 进行 CI/CD 设置。目标是让开发人员 select 要创建的构建类型,即暂存/生产。
感谢,我添加了以下代码-
parameters:
- name: selectConfiguration
displayName: Select build configuration
type: string
default: Debug
values:
- Debug
- Release
variables:
- name: config
${{ if eq(variables['parameters.selectConfiguration'], 'Debug') }}:
value: Debug
${{ else }}:
value: Release
这给了我以下结果 -
但是无论我select在这个单选组里做什么,它总是运行else块。即 if-else 总是失败。对理解我在这里做错了什么有帮助吗?
在 YAML 管道中,您不能使用 if...else
表达式在不同条件下为变量分配不同的值。
只能使用if
表达式来判断一个变量在指定条件下是否可用。参见“Conditionally assign a variable”。
if...else
表达式可用于:
- 在不同条件下为任务的输入分配不同的值。参见“Conditionally set a task input”。
- 运行 不同条件下作业的不同步骤。参见“Conditionally run a step”。
试试下面的方法,它应该有效。我正在使用相同的逻辑在不同的代理池之间切换。
variables:
${{ if eq(parameters.selectConfiguration, 'Debug') }}:
config: Debug
${{ else }}:
config: Release
我最近正在使用 Azure 进行 CI/CD 设置。目标是让开发人员 select 要创建的构建类型,即暂存/生产。
感谢
parameters:
- name: selectConfiguration
displayName: Select build configuration
type: string
default: Debug
values:
- Debug
- Release
variables:
- name: config
${{ if eq(variables['parameters.selectConfiguration'], 'Debug') }}:
value: Debug
${{ else }}:
value: Release
这给了我以下结果 -
但是无论我select在这个单选组里做什么,它总是运行else块。即 if-else 总是失败。对理解我在这里做错了什么有帮助吗?
在 YAML 管道中,您不能使用 if...else
表达式在不同条件下为变量分配不同的值。
只能使用if
表达式来判断一个变量在指定条件下是否可用。参见“Conditionally assign a variable”。
if...else
表达式可用于:
- 在不同条件下为任务的输入分配不同的值。参见“Conditionally set a task input”。
- 运行 不同条件下作业的不同步骤。参见“Conditionally run a step”。
试试下面的方法,它应该有效。我正在使用相同的逻辑在不同的代理池之间切换。
variables:
${{ if eq(parameters.selectConfiguration, 'Debug') }}:
config: Debug
${{ else }}:
config: Release