是否可以在我的 Azure DevOps 构建管道“发布工件”任务中有条件地设置工件名称?

Gre*_*egH 3 azure-devops azure-pipelines-build-task azure-pipelines

我想知道是否可以在我的 Azure DevOps 构建管道“发布工件”任务中有条件地设置我的构建工件的名称?我想根据构建管道的输入生成不同的工件。假设,基于输入管道变量,我想生成三个工件之一(“红色”、“蓝色”、“绿色”)。是否可以根据输入变量指定在我的“发布工件”任务中生成的工件,或者仅生成三个构建管道是否更容易/更好?

Leo*_*SFT 5

是否可以在我的 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"
     }
Run Code Online (Sandbox Code Playgroud)

然后在发布构建构件的任务,我设置ArtifactNamedrop-$(CustomArtifactName)

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact: drop'
  inputs:
    ArtifactName: 'drop-$(CustomArtifactName)'
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

希望这可以帮助。