【问题标题】:How to set Azure DevOps yaml variables conditionally based on parameter value如何根据参数值有条件地设置 Azure DevOps yaml 变量
【发布时间】:2021-10-15 22:01:59
【问题描述】:

我正在尝试根据 yaml 管道中的参数值设置变量。似乎我已经阅读了许多其他帖子,其中显示了作者所说的以下示例,但在尝试执行以下操作时我无法解决过去的问题。

我在这个例子中也尝试了很多变体,太多了,这里就不一一列举了。有时它会将“值”显示为重复键。在其他情况下,我已经能够尝试开始运行并通过环境选择获得提示,但随后打开阶段对话框会引发解析错误。

文件顶部的变量声明与阶段或作业中的变量声明之间是否存在某种区别?这似乎是我在阅读其他示例时注意到的差异。

我最终要做的是根据 environment 参数的值设置 ServiceConnection 变量值。

parameters:
- name: environment
  displayName: Environment
  type: string
  values:
  - DEV
  - TEST

pr: none
trigger: none

pool: PrivateAgentPool

variables:
  - name: 'isMain'
    value: $[eq(variables['Build.SourceBranch'], 'refs/heads/main')]
  - name: 'buildConfiguration'
    value: 'Release'

  - name: 'environment'
    value: ${{ parameters.environment }}

  - name: 'ServiceConnection'
    ${{ if eq(variables['environment'], 'DEV') }}:
      value: 'svcConnectionDev'
    ${{ if eq(variables['environment'], 'TEST') }}:
      value: 'svcConnectionTest'

【问题讨论】:

    标签: azure-devops yaml azure-pipelines-yaml


    【解决方案1】:

    看起来您的解决方案几乎是正确的。考虑下面的例子。

    parameters:
      - name: region
        type: string
        default: westeurope
        values:
          - westeurope
          - northeurope
    
    variables:
      ${{ if eq(parameters['region'], 'westeurope') }}:
        ServiceConnection: "svcConnectionDev"
      ${{ else }}:
        enter code here
    

    如果你想使用这个 ServiceConnectionvar,你可以通过调用 $ServiceConnection 来实现

    【讨论】:

    • 感谢您的回复,非常感谢。我不清楚这是如何需要的:目标是设置一个 ServiceConnection 变量,你是对的,但它取决于参数值。如果 parameter.environment = 'DEV',$ServiceConnection = 'svcConnectionDev',如果 parameter.environment = 'TEST',$ServiceConnection = 'svcConnectionTest'。如果我尝试将上面的代码复制/粘贴到我的管道中,它将无法编译...此块后面的值具有“映射条目的错误缩进”错误。
    • 该代码可能有效。但是如果你想有条件地设置 ServerConnection,如果我把 ServiceConnection: "svcAlternateConn" 放在你有 "enter code here" 的 else 部分,我会得到重复的键错误
    猜你喜欢
    • 2022-10-08
    • 2021-11-23
    • 1970-01-01
    • 2021-09-04
    • 2020-08-14
    • 1970-01-01
    • 2022-08-02
    • 1970-01-01
    • 2014-10-06
    相关资源
    最近更新 更多