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