如何将 if equals 与存储在 Azure 管道中的变量一起使用?

问题描述 投票:0回答:1

我对天蓝色管道有点陌生,目前我无法解决这个问题。 我的天蓝色管道中存储了一个变量:ENABLE_BUILD,并且该值设置为 YES。

在我的 yaml 文件中,我设置了如下变量:

variables:
  - group: my-var-group
  - name: enableBuild
    value: '$(ENABLE_IDB)'
  - name: buildPath
    ${{ if eq(variables['enableBuild'], 'YES') }}:
      value: 'path/build-file.jar*'
    ${{ else }}:
      value: '.'

现在我的问题是:enableBuild 正在获取正确的值,即“是”。 但是当我尝试设置 buildPath 变量时,它总是会转到 else 语句,即使我的 ENABLE_IDB 填充为 YES。

当我使用 echo 时,enableBuild 正在获取“YES”值,而 buildPath 正在获取“.”值。价值。在互联网上查看,我无法确定我的 if equals 语句有什么问题。我正在以正确的方式进行此验证吗?谢谢。

azure azure-devops azure-pipelines pipeline
1个回答
0
投票

发生这种情况是因为编译时变量与运行时变量有关,虽然在这里您在编译时引用

enableBuild
变量,但
enableBuild
的值是在运行时获取的(因为它尝试访问名为
ENABLE_IDB 的环境变量) 
)。

你到底想做什么?这个

ENABLE_IDB
应该手动设置吗?

您可以从参数获取它:

parameters:
- name: enableBuild
  type: string
  values:
  - YES
  - NO

并像这样引用它:

  - name: buildPath
    ${{ if eq(parameters.enableBuild, 'YES') }}:
      value: 'path/build-file.jar*'
    ${{ else }}:
      value: '.'
© www.soinside.com 2019 - 2024. All rights reserved.