【问题标题】:Azure Pipeline Enable Task base on variable valueAzure Pipeline Enable Task 基于变量值
【发布时间】:2020-11-13 08:15:42
【问题描述】:

我的管道中有一个任务应该根据变量的值启用。该变量在单独的 yml 文件中定义,并设置为 true 或 false。

          - task: AzurePowerShell@3
            displayName: 'Create envionment'
            inputs:
              azureSubscription: 'id'
              ScriptPath: $(workFolder)/Provisions/Environment/create.ps1
              errorActionPreference: stop
              azurePowerShellVersion: LatestVersion
             enabled: $(createEnvironment)

但是这给了我一个错误: Unexpected value $(createEnvironment)

难道不能做到这一点吗?

【问题讨论】:

    标签: azure azure-pipelines


    【解决方案1】:

    您可以使用${{variables.createEnvironment}} 来引用变量。见下文:

    - task: AzurePowerShell@3
      displayName: 'Create envionment'
      inputs:
        ....   
      enabled: ${{variables.createEnvironment}}
    

    $(createEnvironment) 不工作的原因是因为$() 在运行时被解析。但是${{}} 会在编译时被解析。请参阅here 了解更多信息。

    您也可以使用条件。但是您需要将变量 createEnvironment 包装在单引号 '' 中。见下文:

    condition: eq(variables['createEnvironment'], true)
    

    【讨论】:

    • 我最终使用了condition,它适用于引号。谢谢!
    【解决方案2】:

    您应该使用条件与启用参数。它应该是这样的:

              - task: AzurePowerShell@3
                displayName: 'Create envionment'
                inputs:
                  azureSubscription: 'id'
                  ScriptPath: $(workFolder)/Provisions/Environment/create.ps1
                  errorActionPreference: stop
                  azurePowerShellVersion: LatestVersion
                 condition: eq(variables[createEnvironment], true)
    

    【讨论】:

    • 当我尝试这样做时,我得到错误Unrecognized value: 'createEnvironment'. Located at position 14 within expression: eq(variables[createEnvironment], true). 通常在我的管道中使用语法$(createEnvironment) 引用这个变量。我也试过了,但它也不起作用。这应该与用户定义的变量一起使用吗?
    • @Sam - 条件插入适用于用户定义的变量,请参见此处:[ADO 管道 - 条件] (docs.microsoft.com/en-us/azure/devops/pipelines/process/…)
    • 我看过这个文档,但没有在单独的 yaml 文件中使用用户定义变量的条件示例。他们使用流水线变量或参数,两者都确实有效。但是如果我使用在变量yaml文件中定义的变量$(myvar),则无法识别(虽然我可以回显变量的值所以问题与条件有关)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 2022-01-08
    • 1970-01-01
    • 2019-04-06
    相关资源
    最近更新 更多