Azure 使用System.PullRequest.TargetBranch动态设置变量组
我正在尝试使用azure devops在请求管道中动态设置组。Yaml文件如下所示:Azure 使用System.PullRequest.TargetBranch动态设置变量组,azure,azure-devops,yaml,azure-yaml-pipelines,Azure,Azure Devops,Yaml,Azure Yaml Pipelines,我正在尝试使用azure devops在请求管道中动态设置组。Yaml文件如下所示: variables: - ${{ if eq(variables['System.PullRequest.TargetBranch'], 'refs/heads/dev') }}: - group: dev-var-group 这不起作用,条件被评估为“false”。为了证实这一点,我将条件颠倒如下 variables: - ${{ if ne(variables['System.PullReque
variables:
- ${{ if eq(variables['System.PullRequest.TargetBranch'], 'refs/heads/dev') }}:
- group: dev-var-group
这不起作用,条件被评估为“false”。为了证实这一点,我将条件颠倒如下
variables:
- ${{ if ne(variables['System.PullRequest.TargetBranch'], 'refs/heads/dev') }}:
- group: dev-var-group
在正确设置该组之后,读取所有必需的变量并执行管道工作
请任何人在这里协助使其在正确的条件下工作好吗?恐怕这是不可能的。如果查看
模板表达式语法
:
您可以使用模板表达式语法来展开模板参数和变量(${{variables.var})。模板变量在编译时处理,并在运行时开始前替换。模板表达式设计用于将YAML的部分作为模板重用
当找不到替换值时,模板变量会自动合并为空字符串。与宏和运行时表达式不同,模板表达式可以显示为键(左侧)或值(右侧)。以下内容有效:${{variables.key}}:${{{variables.value}
要使其正常工作,您需要一个模板变量,System.PullRequest.TargetBranch
是一个运行时变量,因此它被替换为空字符串。如果检查预定义变量,您将注意到模板中最后一列可用的?
对于
System.PullRequest.TargetBranch
来说,no
可能足以评估Build.Reason,因为它在模板中可用
您还可以在运行时检查拉请求源分支,并基于此分配变量。即:
Write-Host “##vso[task.setvariable variable=testvar;]testvalue”).