Можно ли условно установить имя артефакта в моей задаче «Опубликовать артефакт» в конвейере сборки Azure DevOps?
Боюсь, что такого стандартного способа сделать это не существует,Если вы хотите условно установить имя артефакта, мы должны использовать вложенные переменные в конвейере.
Однако, на данный момент, значение вложенных переменных (например, $(CustomArtifactName_$(Build.SourceBranchName)))
еще не поддерживается в конвейерах сборки .
В качестве обходного пути можно добавить задачу Run Inline Powershell
для установки переменной на основе входных переменных конвейера.
Со своей стороны я использую Build_SourceBranchName
в качестве переменных входного конвейера. Затем я добавляю следующие сценарии в задачу Inline Powershell :
- task: InlinePowershell@1
displayName: 'Inline Powershell'
inputs:
Script:
$branch = $Env:Build_SourceBranchName
if ($branch -eq "TestA5")
{
Write-Host "##vso[task.setvariable variable=CustomArtifactName]Red"
}
else
{
Write-Host "##vso[task.setvariable variable=CustomArtifactName]Blue"
}
Затем в Публикуя задачу сборки артефактов , я установил ArtifactName
с помощью drop-$(CustomArtifactName)
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
inputs:
ArtifactName: 'drop-$(CustomArtifactName)'
Надеюсь, это поможет.