Azure DevOps:声明其值基于特定条件的变量

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

在 Azure DevOps 中,我可以声明这样的变量吗?

- name: overrideParameters
  ${{ if contains(lower(parameters.stageDisplayname), 'aa')}}:
    - ${{ if endsWith(lower(parameters.stageDisplayname), 'j') }}: 
        value: '-a "$(Gate.a)" -b "${{ parameters.b }}" -c "${{ parameters.c }}" -d "${{ parameters.d }}" -e "${{ parameters.e }}"'
    - ${{ else }}:
        value: '-a "$(Gate.a)" -b "${{ parameters.b }}" -c "${{ parameters.c }}" -d "${{ parameters.d }}" -e "${{ parameters.e }}" -f 32'
  ${{ else }}:
    - ${{ if endsWith(lower(parameters.stageDisplayname), 'j') }}: 
        value: '-a "$(Gate.a)" -b "${{ parameters.b }}" -c "${{ parameters.c }}" -d "${{ parameters.d }}" -e "${{ parameters.e }}" -f 64 '
    - ${{ else }}:
        value: '-a "$(Gate.a)" -b "${{ parameters.b }}" -c "${{ parameters.c }}" -d "${{ parameters.d }}" -ee "${{ parameters.ee }}" '

不要介意参数,只看语法。我修改了实际的代码,因此可能缺少一些撇号和逗号,所以我提前道歉。

如果这是可行的,因为我这样做时遇到这样的错误:

enter image description here

variables azure-devops azure-pipelines-yaml
1个回答
0
投票

我只需从条件中删除破折号。像这样的东西:

- name: overrideParameters
  ${{ if contains(lower(parameters.stageDisplayname), 'aa') }}:
    ${{ if endsWith(lower(parameters.stageDisplayname), 'j') }}: 
      value: '-a "$(Gate.a)" -b "${{ parameters.b }}" -c "${{ parameters.c }}" -d "${{ parameters.d }}" -e "${{ parameters.e }}"'
    ${{ else }}:
      value: '-a "$(Gate.a)" -b "${{ parameters.b }}" -c "${{ parameters.c }}" -d "${{ parameters.d }}" -e "${{ parameters.e }}" -f 32'
  ${{ else }}:
    ${{ if endsWith(lower(parameters.stageDisplayname), 'j') }}: 
      value: '-a "$(Gate.a)" -b "${{ parameters.b }}" -c "${{ parameters.c }}" -d "${{ parameters.d }}" -e "${{ parameters.e }}" -f 64'
    ${{ else }}:
      value: '-a "$(Gate.a)" -b "${{ parameters.b }}" -c "${{ parameters.c }}" -d "${{ parameters.d }}" -ee "${{ parameters.ee }}"'
© www.soinside.com 2019 - 2024. All rights reserved.