如果未填充变量,我希望将布尔值传递到 Azure DevOps YAML 构建中的任务中。
我创建了一个工作变量:
isPreRelease: $[ ne(dependencies.SetupStage.outputs['ConfigJob.VersionOut.releaseTag'], '') ]
但这计算结果为
false
而不是所需的 true
...
日志显示它尝试将
Null
评估为 ''
(空字符串),可理解的结果是 False
。
isPreRelease:
Parsing expression: <ne(dependencies.SetupStage.outputs['ConfigJob.VersionOut.releaseTag'], '')>
Evaluating: ne(dependencies['SetupStage']['outputs']['ConfigJob.VersionOut.releaseTag'], '')
Expanded: ne(Null, '')
Result: 'False'
如何评估如果
ConfigJob.VersionOut.releaseTag
是 Null
那么我们得到 True
?
coalesce函数可用于返回第一个不等于 null 或空字符串的值。
示例:
coalesce(variables.couldBeNull, variables.couldAlsoBeNull, 'default value')
如何评估如果
是ConfigJob.VersionOut.releaseTag
那么我们得到Null
?True
尝试这样的事情:
coalesce(dependencies.SetupStage.outputs['ConfigJob.VersionOut.releaseTag'], 'True')
完整表情:
variables:
isPreRelease: $[ ne(coalesce(dependencies.SetupStage.outputs['ConfigJob.VersionOut.releaseTag'], 'True'), '') ]