Использование Build.ArtifactStagingDirectory и PublishPipelineArtifact в матричной сборке
Мой Azure Pipelines создает выходные пакеты NuGet в /home/vsts/work/1/Windows
папка где Windows
это имя матрицы (я запускаю секцию сборки моего конвейера в Windows, Mac и Linux, но хочу публиковать пакеты NuGet только из моей сборки Windows).
Документы говорят об использовании $(Build.ArtifactStagingDirectory)/*.nupkg
путь к NuGetCommand@2
, Однако это указывает на /home/vsts/work/1/a
папка.
Это $(Build.ArtifactStagingDirectory)
переменная неверна, потому что я использую матричную сборку? Это неправильно, потому что я использую PublishPipelineArtifact@0
задача опубликовать мои.nupkg's?
1 ответ
Потому что вы используете matrix
Стратегия с PublishArtifacts у вас есть несколько артефактов, поэтому на втором этапе (этап развертывания) 3 артефакта загружаются не в папку a
в agnet, но в корневую папку сборки:
home
|-- vsts
|-- work
|-- 1
|--
a
b
s
Test Results
Mac
Ubuntu
Windows
Так что вам нужно использовать varaible $(Build.BuildDirectory)
что его ценность home/vsts/work/1
а потом /Windows/.nupkg
:
$(Build.BuildDirectory)/Windows/.npukg