【问题标题】:echo value of coalesced variable in yaml with azure devops使用 azure devops 的 yaml 中合并变量的回显值
【发布时间】:2020-09-23 11:18:47
【问题描述】:

我在 yaml 中有这个变量

sonarVerbose: $[coalesce(variables['SonarVerbose'],false)]

然后我想像这样输出它

- script: | 
   echo value is ${{variables.SonarVerbose}}

但它回显了 [coalesce(variables['SonarVerbose'],false)] 而不是预期的“假”。

这不可能吗?

【问题讨论】:

  • 试试sonarVerbose: $[coalesce(variables.SonarVerbose, 'false')]

标签: azure-devops yaml azure-pipelines


【解决方案1】:

看来自分配是不可能的。作为解决方法,您可以使用以下方法:

variables:
  sonarVerboseNew: $[coalesce(variables.sonarVerbose,false)]

steps:
- script: echo $(sonarVerboseNew)
- bash: echo "##vso[task.setvariable variable=sonarVerbose;]$(sonarVerboseNew)"
- script: echo $(sonarVerbose)

【讨论】:

    【解决方案2】:

    如何解决这个问题:

    您可以将输出脚本替换为以下脚本。

    - script: | 
       echo value is $(variables.SonarVerbose)
    

    问题原因:

    出现此问题是因为您使用的是编译时表达式 ${{ <expression> }} 而不是运行时表达式 $( <expression> )

    ${{ <expression> }} 将在 yaml 文件执行之前进行评估。因此,此时该值未定义。它显示表达式本身,而不是表达式求值的结果。

    点击this document了解详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-23
      • 2020-04-18
      • 2020-04-21
      • 2022-07-21
      • 2020-05-29
      • 1970-01-01
      相关资源
      最近更新 更多