【问题标题】:How to add multiply variables with YAML conditional insertion如何使用 YAML 条件插入添加乘法变量
【发布时间】:2021-03-24 10:39:00
【问题描述】:

我阅读了这份文件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'], variables['Build.SourceBranchName'])), 'qa') }}:
    - newEnv: 'QA'
    - account: '$(ACCOUNT)'
    - password: '$(PASSWORD)'
  - resGroupName: ${{ format('RESGROUP-{0}', variables['newEnv']) }}

ACCOUNT、PASSWORD 和 ENV 是在 Azure 构建管道中定义的变量 但是在运行构建管道之前我总是会出错。

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

【问题讨论】:

    标签: yaml azure-pipelines


    【解决方案1】:

    从您的 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'], variables['Build.SourceBranchName'])), '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)) 中定义的变量同名。或者变量无法成功传递。

    【讨论】:

    • 谢谢,我试过了,但输出是:$(newEnv) $(account) $(password)
    • 嗨@frank。您需要确保满足 if 表达式的条件。然后将设置变量。否则它不会设置正确的变量
    • 我建议你可以简化 if 表达式进行测试
    • 感谢您指出这一点,看来我的情况有问题。
    猜你喜欢
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 2020-12-10
    • 2014-12-18
    • 2020-11-07
    • 1970-01-01
    • 2020-10-28
    相关资源
    最近更新 更多