在 YAML 构建中评估 Null 变量?

问题描述 投票:0回答:1

如果未填充变量,我希望将布尔值传递到 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

azure-devops azure-pipelines
1个回答
0
投票

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'), '') ]
© www.soinside.com 2019 - 2024. All rights reserved.