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

Using Build.ArtifactStagingDirectory and PublishPipelineArtifact in a Matrix Build

我的 Azure Pipelines 构建在 /home/vsts/work/1/Windows 文件夹中输出 NuGet 包,其中 Windows 是矩阵名称(我 运行 我的管道的构建部分在 Windows、Mac 和 Linux,但只想从我的 Windows 构建中发布 NuGet 包。

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

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

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

因为您将 matrix 策略与 PublishArtifacts 一起使用,您有多个工件,所以在第二阶段(部署阶段),3 个工件不会下载到文件夹 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