Azure DevOps: Как извлечь артефакт сборки из сборки Azure Конвейер из скрипта PowerShell в Releaseline?
В вашем посте есть три вопроса, которые вызывают эту проблему проблема.
Первая , так как вы выбрали местоположение артефакта sh, равное Azure Pipeline
, вы не можете установить targetPath
. Вы можете проверить документ Publi sh Задача Build Artifacts :
Я полагаю, что то, что вы сказали, должно быть установлено * От 1020 * до $(Build.ArtifactStagingDirectory)/dro
p с именем-артефактом "some_sidebar
", например:
Но используется pathtoPublish
установить путь к папке или файлу для публикации sh, другими словами, это местоположение источника артефакта, а не цель.
Итак, мы делаем не нужно использовать \drop
в сценариях powershell для получения артефакта.
Second , MS предоставляет серию Release переменных , чтобы мы могли их использовать
Вы можете использовать System.DefaultWorkingDirectory
, System.ArtifactsDirectory
или Agent.ReleaseDirectory
:
Итак, мы могли бы использовать одна из трех переменных в скриптах powershell, чтобы получить артефакт, но переменная - не полный путь к файлу, это путь к артефакту в конвейере выпуска, нам нужно сделать еще один шаг.
Третий , когда вы используете релиз конвейера, чтобы получить артефакт, который установит артефакт в папку, содержащую Source alias
:
В качестве теста я создаю Пример со следующими сценариями powershell:
$path = "$(System.DefaultWorkingDirectory)\<SourceAliasVlaue>\<AartifactName>"
#$path = $(Build.Repository.LocalPath)
$SPFolderName = "Style Library/_some_sidebar";
# Upload template list
$status = "Uploading template list to Location: " + $SPFolderName
Write-Host $status
Get-ChildItem -Path $path
Я использую сценарии powershell Get-ChildItem -Path $path
, чтобы перечислить файл в артефакте:
Теперь я могу получить файл артефакта some_sidebar.js
в задаче powershell.
Примечание: Вы можете попробовать использовать подстановочный знак для получения артефакта, например:
$te = Add-PnPFile -Path "$(System.DefaultWorkingDirectory)\**\some_sidebar.js"
Надеюсь, это поможет.