Azure 管道根据条件设置任务的显示名称

Mat*_*ann 1 azure-devops azure-pipelines-build-task azure-pipelines

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

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

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

  - task: PublishBuildArtifacts@1        
    displayName: $[variables.applicationName] #  runtime variable
Run Code Online (Sandbox Code Playgroud)

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

Sha*_*zyk 7

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

pool:
  vmImage: 'windows-latest'

variables:
  test: "SomeValue"

steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: 'Write-Host "Hello World"'
  displayName: "The variable $(test)"
Run Code Online (Sandbox Code Playgroud)

结果是:

在此处输入图片说明

  • @MatthiasHerrmann 因为步骤名称是在管道开始运行时评估的,所以即使您更改变量值也不会影响步骤名称。 (3认同)

Mat*_*att 6

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

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

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