Вопрос
Допустим Вы хотите изменить какой-то общий параметр сразу во всех Build Definitions. Например, путь для выгрузки артефактов.
Как это сделать? Ни экспорта/импорта, ни PowerShell модулей в 2016 году для VSTS не существует. Но зато есть REST API.
Как это сделать? Ни экспорта/импорта, ни PowerShell модулей в 2016 году для VSTS не существует. Но зато есть REST API.
Ответ
Переходим в VSTS в раздел Account -> Security -> Personal access tokens -> Add
Задаём название, срок действия, нажимаем "Create Token".
Теперь приступаем к скрипту на PowerShel.
Сначала зададим основные параметры
$PAT - Только что сгенерированный токен
$Instance, $Project - URL Вашего VSTS и название проекта, подробнее здесь.
$Version - Актуальная версия API
Далее сформируем HTTP Get запрос для получения списка ID всех Build Definitions.
В ответ мы получим JSON с которым довольно удобно работать в PowerShell.
Так можно получить все ID.
$BuildDefinitionsIDs = $BuildDefinitionsList.value.id
Далее сделаем цикл, который будет проходить по всем Build Definitions, выгружать описание в JSON и заменять необходимые параметры.
Тут логично ограничиться работой с JSON, но в моём случае старый адрес \\KR-VSOBUILD01 присутствует в самых разных шагах билда. Поэтому мне проще сохранить его описание в файл, произвести замену при помощи -Replace и потом прочитать из файла.
В выводе скрипта - результат для каждой Build Definitions
Скрипт целиком
Комментариев нет:
Отправить комментарий