Azure DevOps中是否允许使用该条件语法声明变量?
Azure DevOps变量声明语法问题
你提供的这段变量声明语法不被Azure DevOps允许,问题出在条件分支里错误添加了列表项符号(-),导致YAML结构不符合规范。
错误原因
overrideParameters是单个变量定义,并非变量列表,但你在嵌套的if/else块前都加了-,这会让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 }}"'
说明
删掉条件分支内所有的-后,YAML层级结构恢复正常,每个条件分支会直接为overrideParameters变量赋值对应的value,Azure DevOps就能正确解析这段配置了。
内容的提问来源于stack exchange,提问作者Anonymous Person
相关产品推荐
相关产品推荐

