ADO管道-如何在运行时评估变量组的值

时间:2020-08-05 19:35:55

标签: azure-devops azure-pipelines azure-pipelines-release-pipeline azure-pipelines-yaml azure-yaml-pipelines

我有一个要在其中运行表达式的变量组。也就是说,我希望在运行时计算该变量组的变量内容。

Variables_General有一个名为isMain的变量,其内容为$[contains(variables['Build.SourceBranch'], 'refs/heads/develop')]

variables:
  - group: Variables_General

...

condition: variables.isMain

但这不能按预期工作。我已经尝试过使用$ []和$()进行双引号的各种组合。我已经在变量值和如何引用变量中进行了尝试。它执行以下两项操作之一:表示没有期望“ $”,或者只是检测到变量具有内容,因此为“ true”

在运行时获得评估的变量组的变量值中包含代码的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

Yaml引用变量组,但是无法解析表达式。 Yaml将变量组中的$[contains(variables['Build.SourceBranch'], 'refs/heads/develop')]视为字符。

您可以在以下网站上提出建议:

https://developercommunity.visualstudio.com/content/idea/post.html?space=21

当前,您可以在变量中分别定义isMain变量:

variables:
- group: Variables_General
- name: isMain 
  value: $[contains(variables['Build.SourceBranch'], 'refs/heads/master')]

steps:
- script: echo Hello!
  condition: eq(variables.isMain, true)