队列时间变量设置不会覆盖默认表达式

时间:2020-02-11 04:21:31

标签: azure-devops build-pipeline

我正在尝试创建一个新的构建管道,该管道将为发布分支和主分支运行几乎相同的步骤。我还想允许使用队列时间变量来覆盖管道的构建样式(发布vs主分支)。

这是定义的变量:

1]

当我在队列时间设置变量时,将计算值:

2]

找到队列时间变量:

3]

但是当我使用以下方法访问值时:

4]

该值为false:

5]

我是在做错事还是期望队列时间变量的功能不同于设计的功能?我以为它们会覆盖管道中定义的原始值。

1 个答案:

答案 0 :(得分:0)

我认为它们覆盖了管道中定义的原始值。

是的,原始变量值在队列时间被覆盖。

根据您显示的img,IsProductionRelease被计算为“ False”,这也是在powershell脚本中生成的,这意味着您的队列时间变量工作正常,唯一的不同是在您的第三张img中出于某种原因它变为“ true”。

我制作了一个演示,您可以参考它:

SourceBranch设置为master分支:

enter image description here

变量IsProductionRelease

enter image description here

在第一次测试中,变量值未更改:

Variables:
  IsProductionRelease:
    Parsing expression: <startsWith(variables['Build.SourceBranch'],'refs/heads/release')>
    Evaluating: startsWith(variables['Build.SourceBranch'], 'refs/heads/release')
    Expanded: startsWith('refs/heads/master', 'refs/heads/release')
    Result: 'False'

powershell也会返回“ False”值:

Is Producetion Release = False

在第二个测试中,将IsProductionRelease的值更改为$[startsWith(variables['Build.SourceBranch'],'refs/heads/master')]

enter image description here

计算结果:

Variables:
  IsProductionRelease:
    Parsing expression: <startsWith(variables['Build.SourceBranch'],'refs/heads/master')>
    Evaluating: startsWith(variables['Build.SourceBranch'], 'refs/heads/master')
    Expanded: startsWith('refs/heads/master', 'refs/heads/master')
    Result: 'True'

powershell返回“ True”

Is Producetion Release = True

请再次检查您的整个过程。