【问题标题】:Azure pipeline set displayname of task based on conditionAzure 管道根据条件设置任务的显示名称
【发布时间】:2020-07-14 13:35:31
【问题描述】:

在构建管道中,我有一个使用 powershell 脚本的工作,该脚本根据如下变量设置应用程序名称:

$applicationName = If ('$(configuration)' -eq 'Release') { 'Appname' } Else { 'Appname-Test' }
Write-Host "##vso[task.setvariable variable=applicationName]$applicationName"

我尝试将PublishBuildArtifacts@1 变量的显示名称设置为这样的变量:

  - task: PublishBuildArtifacts@1        
    displayName: $[variables.applicationName] #  runtime variable

但这实际上显示$[variables.applicationName] 而不是变量值。如何根据变量更改任务的显示名称?

【问题讨论】:

    标签: azure-devops azure-pipelines azure-pipelines-build-task


    【解决方案1】:

    您可以这样使用变量:$(variableName)。例如:

    pool:
      vmImage: 'windows-latest'
    
    variables:
      test: "SomeValue"
    
    steps:
    - task: PowerShell@2
      inputs:
        targetType: 'inline'
        script: 'Write-Host "Hello World"'
      displayName: "The variable $(test)"
    

    结果是:

    【讨论】:

    • 哦,太好了,我明天去看看。我想在我的尝试中我使用了单引号而不是双引号
    • 它只适用于variables 声明,但是当我尝试覆盖该值(例如“SomeValue”为“AnotherValue”)时,旧值会显示
    • 如何覆盖值?
    • 我的管道中有 2 个工作。在第一份工作中,我使用 powershell 覆盖变量 - 请参阅我的问题中包含的代码。然后我尝试将此覆盖的值用作第二个作业中的显示名称。
    • @MatthiasHerrmann 这是因为在管道开始运行时评估了步骤名称,因此即使您更改变量值也不会影响步骤名称。
    【解决方案2】:

    目前看来这是不可能的。在我发现的两个问题中,他们都将其描述为功能请求。

    https://github.com/MicrosoftDocs/azure-devops-docs/issues/2327

    https://github.com/microsoft/azure-pipelines-yaml/issues/45

    【讨论】:

    • 根据另一个答案中的示例,这可能已经完成。在我正在查看的本地版本中可能不可用。每当您更改“答案”时,我都会删除此答案。
    【解决方案3】:

    我认为${{..}} 是要走的路。您在编译时知道configuration,因此您可以在编译时创建应用名称。

    variables:
      ${{ if eq(variables.configuration, 'Release') }}:
        applicationName: 'Appname'
      ${{ if ne(variables.configuration, 'Release') }}:
        applicationName: 'Appname-Test'
    
      - task: PublishBuildArtifacts@1        
        displayName: ${{ variables.applicationName }}
    

    【讨论】:

      猜你喜欢
      • 2020-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-07
      • 2020-02-06
      • 1970-01-01
      • 2020-05-28
      • 1970-01-01
      相关资源
      最近更新 更多