如何解决如何使用 YAML 条件插入添加乘法变量
我阅读了这份文件 https://docs.microsoft.com/zh-cn/azure/devops/pipelines/process/expressions?view=azure-devops#conditional-insertion 但不像文档中演示的那样,我需要添加三个条件相同的变量,如下所示:
name: arm_temp
resources:
repositories:
- repository: self
type: git
variables:
- ${{ if in(lower(coalesce(variables['ENV'],variables['Build.sourceBranchName'])),'release','prod') }}:
- newEnv: 'Prod'
- account: '$(ACCOUNT)'
- password: '$(PASSWORD)'
- ${{ if eq(lower(coalesce(variables['ENV'],'qa') }}:
- newEnv: 'QA'
- account: '$(ACCOUNT)'
- password: '$(PASSWORD)'
- resGroupName: ${{ format('RESGROUP-{0}',variables['newEnv']) }}
ACCOUNT、PASSWORD 和 ENV 是在 azure 构建管道中定义的变量 但在运行构建管道之前我总是遇到错误。
解决方法
从您的 Yaml 示例来看,Yaml 格式似乎存在一些问题。
您可以参考以下 YAML 示例:
variables:
${{ if in(lower(coalesce(variables['ENV'],variables['Build.SourceBranchName'])),'release','prod') }}:
newEnv: 'Prod'
account: $(myaccount)
password: $(mypassword)
${{ if eq(lower(coalesce(variables['ENV'],'qa') }}:
newEnv: 'QA'
account: $(myaccount)
password: $(mypassword)
resGroupName: ${{ format('RESGROUP-{0}',variables['newEnv']) }}
pool:
vmimage: windows-latest
steps:
- script: |
echo $(newEnv)
echo $(account)
echo $(password)
变量:
结果:
注意:您需要更改变量名称 $(ACCOUNT)
$(PASSWORD)
。它们不能与 yaml($(account),$(password)
) 中定义的变量同名。或者变量不能成功通过。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。