azure-devops - Azure DevOps 变量意外设置为 Null
问题描述
我有一个包含多个工作的管道。出于某种原因,设置阶段的变量在从作业运行的条件下为 Null。
这是管道yaml:
https://github.com/ossentoo/azdo-yaml-varsdemo/tree/feature/private-agent
我不希望评估为 false 的语法在 child.yml 中(第 24 行):
我已附加 Azure DevOps日志中的文件之一
在第 73 行的日志中,显示如下:
问题是,如果值是在阶段设置的,为什么变量 applicationsList 为 Null?我尝试将语法更改为 variables.applicationsList,但这似乎也不起作用。
谢谢
谢谢
解决方案
问题是${{ ... }}
语法是在编译时评估的。在那个时间点,该值仍然未定义。
相反,您可以使用condition: $[ ... ]
. 该语法将在运行时进行评估。
看:
- ${{ each folder in parameters.folders }}:
- deployment: ${{replace( folder ,'-','_')}}
displayName: 'Apply ${{ folder }}'
timeoutInMinutes: 480
condition: $[contains(variables['applicationsList'], ${{folder}})]