0

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

这是定义的变量:

1]

当我在排队时设置变量时,计算值:

2]

并找到排队时间变量:

3]

但是当我去访问这个值时:

4]

值为假:

5]

我是否做错了什么或期望排队时间变量的功能与其设计的不同?我认为它们会覆盖管道中定义的原始值。

4

1 回答 1

0

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

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

根据您展示的 imgs,IsProductionRelease计算为“False”,这也是在您的 powershell 脚本中生成的,这意味着您的队列时间变量工作正常,唯一不同的部分是在您的第三个 img 中它更改为“true”某些原因。

我建了一个demo你可以参考:

SourceBranch设置为分支master

在此处输入图像描述

变量IsProductionRelease

在此处输入图像描述

在第一次测试中,变量值没有改变:

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')]

在此处输入图像描述

计算结果:

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 返回“真”

Is Producetion Release = True

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

于 2020-02-11T07:42:46.627 回答