импортировать переменные конвейера Azure Devops из файла json - PullRequest
0 голосов
/ 28 октября 2019

Я хочу использовать файл json для хранения переменных, используемых скриптом powershell. В Azure Devops я настроил конвейер, конвейер содержит скрипт powershell со списком переменных. Я хотел бы использовать файл JSON и хранить в этом файле все переменные. Я хочу сохранить файл json в репозитории Azure и использовать его после запуска конвейера. Я не хочу использовать переменные группы. Я нашел это решение [ Json to Variable ] https://marketplace.visualstudio.com/items?itemName=OneLuckiDev.json2variable&targetId=02fbae5c-cc01-4c8b-a90f-7393a3156347, но я прочитал некоторые дополнительные замечания по поводу этой задачи. Есть ли способ использовать файл JSON в качестве места для хранения переменных, или, может быть, я могу использовать другой формат файла? ОБНОВЛЕНИЕ: enter image description here

1 Ответ

1 голос
/ 29 октября 2019

Почему бы напрямую не использовать встроенный командлет Powershell: ConvertFrom-Json. См. Этот официальный документ с описанием этого командлета: Powershell: ConvertFrom-Json .

Вы можете добавить скрипт:

Get-Content "{JSON file path}" | out-string | ConvertFrom-Json

Get-Content будет читать файл JSONв массив строк, и ConvertFrom-Json преобразует эти строки в объект PSCustomObject. Затем вы можете вызвать именно тот объект с простой нотацией рычага (.), а затем использовать его с этим форматом в сценарии задачи.

Вот простой пример, который вы можете использовать:

$data = Get-content {your JSON file path}| out-string | ConvertFrom-Json
Write-Output $data.ts

enter image description here

Здесь я попробовал в своем локальном PowerShell-ISE то же самое использование в задаче Powershell. ts - это один из моих объектов JSON. В Azure Devops вы можете использовать путь, например $(Build.SourcesDirectory)\..\..\...json, для указания местоположения вашего файла, если вы храните его в Repos.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...