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

Azure devops 队列时间变量设置不会覆盖默认表达式,azure-devops,build-pipeline,Azure Devops,Build Pipeline,我正在尝试创建一个新的构建管道,它将为发布分支和主分支运行几乎相同的步骤。我还希望允许使用队列时间变量覆盖管道的构建样式(发布与主分支) 以下是定义的变量: 当我在队列时间设置变量时,会计算值: 并找到队列时间变量: 但当我用这个来访问值时: 该值为false: 我是做错了什么,还是期望队列时间变量的功能与设计的不同?我认为它们超越了管道中定义的原始值 我认为它们超越了管道中定义的原始值 是的,原始变量值在队列时被覆盖 根据您显示的img,IsProductionRelease被计算为

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

以下是定义的变量:

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

并找到队列时间变量:

但当我用这个来访问值时:

该值为false:

我是做错了什么,还是期望队列时间变量的功能与设计的不同?我认为它们超越了管道中定义的原始值

我认为它们超越了管道中定义的原始值

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

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

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

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'
在第二个测试中,将
IsProductionRelease
值更改为
$[startsWith(变量['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'
变量:
iProductionRelease:
解析表达式:
评估:startsWith(变量['Build.SourceBranch'],'refs/heads/master')
扩展:开始使用('refs/heads/master','refs/heads/master')
结果:“正确”
而powershell返回“True”

Is production Release=True


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

谢谢您的帮助回复。为什么我不能只将队列时间值设置为true而不需要表达式?现在我了解了如何生成第三个img,您可以在队列时间将表达式更改为特定的文本值“true”。我也对它进行了测试,并重现了这个问题。似乎在
作业准备参数
部分中,变量被设置为表达式计算值,不能被文本值覆盖。我建议您应该退出表达式,如果您想在不进行表达式计算的情况下直接更改值,请在
IsProductionRelease
中设置一个'false'/'true'文本值。感谢您的跟进,我可能会提交一份错误报告。好主意,您可能会更好地理解它,即使它可能不被接受为错误。顺致敬意,
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'