在矩阵构建中使用Build.ArtifactStagingDirectory和PublishPipelineArtifact

时间:2019-07-17 09:07:08

标签: azure-devops nuget azure-pipelines azure-pipelines-build-task azure-pipelines-tasks

我的Azure Pipelines构建在/home/vsts/work/1/Windows文件夹中输出NuGet软件包,其中Windows是矩阵名称(我正在Windows,Mac和Linux上运行我的管道的build部分,但希望发布NuGet软件包仅来自我的Windows版本)。

文档讨论了如何使用$(Build.ArtifactStagingDirectory)/*.nupkg路径传递给NuGetCommand@2。但是,这指向/home/vsts/work/1/a文件夹。

由于使用矩阵构建,$(Build.ArtifactStagingDirectory)变量是否错误?是因为我正在使用PublishPipelineArtifact@0任务来发布我的.nupkg文件吗?

这里is a link to my azure-pipelines.yml file

1 个答案:

答案 0 :(得分:1)

由于您将matrix策略与PublishArtifacts配合使用,因此您具有多个工件,因此在第二阶段(部署阶段),这3个工件不会下载到Agnet的a文件夹中,而是下载到根目录中构建文件夹:

home
|-- vsts
      |-- work
           |-- 1
              |-- 
                  a
                  b
                  s
                  Test Results
                  Mac
                  Ubuntu
                  Windows

因此,您需要使用变量$(Build.BuildDirectory)的值是home/vsts/work/1,然后使用/Windows/.nupkg

$(Build.BuildDirectory)/Windows/.npukg