微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 YAML 条件插入添加乘法变量

如何解决如何使用 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 构建管道中定义的变量 但在运行构建管道之前我总是遇到错误

错误通知是关于 if 条件下的行。

解决方法

从您的 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)

变量:

enter image description here

结果:

enter image description here

注意:您需要更改变量名称 $(ACCOUNT) $(PASSWORD)。它们不能与 yaml($(account),$(password)) 中定义的变量同名。或者变量不能成功通过。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?