Отображаемое имя задачи, установленное конвейером Azure, в зависимости от условия

В конвейере сборки у меня есть работа с сценарием 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] вместо значения переменной. Как я могу изменить отображаемое имя задачи на основе переменной?


person Matthias Herrmann    schedule 14.07.2020    source источник


Ответы (2)


Похоже, что в настоящее время это невозможно. В обоих обнаруженных мною проблемах они описали это как запрос функции.

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

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

person Matt    schedule 14.07.2020
comment
Основываясь на примере из другого ответа, это могло быть завершено. Возможно, не будет доступна в локальной версии, которую я искал. Каждый раз, когда вы меняете ответ, я удаляю этот. - person Matt; 14.07.2020

Вы можете просто использовать переменную таким образом: $ (имя_переменной). Например:

pool:
  vmImage: 'windows-latest'

variables:
  test: "SomeValue"

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

Результат:

введите описание изображения здесь

person Shayki Abramczyk    schedule 14.07.2020
comment
ой хорошо, завтра проверю. Думаю, в своих попытках я использовал одинарные кавычки вместо двойных кавычек - person Matthias Herrmann; 14.07.2020
comment
Он работает только с объявлением variables, но когда я пытаюсь перезаписать значение (например, SomeValue на AnotherValue), отображается старое значение - person Matthias Herrmann; 15.07.2020
comment
Как перезаписать значение? - person Shayki Abramczyk; 15.07.2020
comment
У меня в разработке 2 работы. В первой работе я использую powershell для перезаписи переменной - см. Код, включенный в мой вопрос. Затем я пытаюсь использовать это перезаписанное значение в качестве отображаемого имени во втором задании. - person Matthias Herrmann; 15.07.2020
comment
@MatthiasHerrmann это потому, что имя шага оценивается при запуске конвейера, поэтому даже вы изменяете значение переменной и не можете повлиять на имя шага. - person Shayki Abramczyk; 15.07.2020