Можно ли условно установить имя артефакта в моей задаче «Опубликовать артефакт» в конвейере сборки Azure DevOps? - PullRequest
0 голосов
/ 18 мая 2019

Мне было интересно, можно ли условно установить имя моего артефакта сборки в моей задаче «Опубликовать артефакт» конвейера сборки Azure DevOps?Я хочу создавать разные артефакты на основе входных данных для моего конвейера сборки.Скажем, исходя из входных переменных конвейера, я хочу создать один из трех артефактов («красный», «синий», «зеленый»).Можно ли указать артефакт, который создается в моей задаче «Опубликовать артефакт», на основе входной переменной, или проще / лучше просто создать три конвейера сборки?

1 Ответ

3 голосов
/ 20 мая 2019

Можно ли условно установить имя артефакта в моей задаче «Опубликовать артефакт» в конвейере сборки 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)'

enter image description here

Надеюсь, это поможет.

...