[英]If with variables not parameters in azure pipeline problem
我将以下代码放入 azure 管道中:
- ${{ if eq(variables.enableAddonVM, true) }}:
- template: ../task-templates/addonVM.yml
parameters:
serviceConnectionName: ${{ variables.serviceConnectionName }}
customerResourceGroup: $(resourceGroupName)
location: ${{ variables.location }}
以下是我的观察:
模板被跳过。 我通过在它之前的任务中打印它来检查值。 它是真实的。 它仍然被跳过。
我还在模板旁边应用了条件,如下所示
模板:../task-templates/addonVM.yml
条件:但仍然失败。 我们无法在模板后使用条件。
删除条件后,我还检查了 addonVM.yml。 addonVM.yml 工作正常。
所以,我的最后一个问题是如何在 if 条件下插入变量? 有什么办法可以解决这个问题吗?
如果在 azure 管道问题中使用变量而不是参数
这取决于变量enableAddonVM
在编译之前是否已经存在。
正如 jessehouwing 指出模板变量${{ variables.var }}
在编译时处理:
查看文档模板表达式语法以获取更多详细信息。
因此,如果变量enableAddonVM
是在先前的任务中生成的,则无法在编译时获取它。 那是因为这个变量是在运行时生成的。
要解决此问题,您可以使用condition
,例如:
steps:
- template: ../task-templates/addonVM.yml
parameters:
serviceConnectionName: ${{ variables.serviceConnectionName }}
customerResourceGroup: $(resourceGroupName)
location: ${{ variables.location }}
condition: eq(variables.enableAddonVM, true)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.