Обработка нескольких azure конвейеров devops - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть несколько azure файлов конвейера devops в одном проекте. Все файлы находятся в подкаталоге и называются azure-pipelines.yml.

Переименование : я могу переименовать конвейеры в пользовательском интерфейсе, чтобы различать guish их ... но я бы хотел пропустить этот шаг вручную и выполнить его в yml. Есть ли параметр для этого - я не могу найти его в документации.

Workdirs : конвейеры запускаются в главном каталоге. Я могу настроить рабочий каталог шагов сценария с помощью workingDirectory благодаря ответу здесь . Но можем ли мы также отрегулировать это для всего трубопровода?

1 Ответ

0 голосов
/ 04 февраля 2020

Нет параметра для переименования конвейеров. Есть два способа переименовать конвейеры. Один из них - переименовать их вручную из пользовательского интерфейса. Другой способ - через обновление определения сборки rest api .

Ниже приведен пример сценариев powershell для переименования конвейера через rest api. сначала скрипты получают определение сборки по определение сборки get api . Затем назначьте новое имя для определения сборки и обновите определение новым именем.

$create = "https://dev.azure.com/{ORG}/{PROJ}/_apis/build/definitions/{DefinitionId}?api-version=5.1"

$PAT="{Person access token}"

$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($PAT)"))

$result = Invoke-RestMethod -Uri $create -Headers @{authorization = "Basic $base64AuthInfo"} -Method get 

$result.name = "YamlPipeline-newName"

$updateBody= $result | ConvertTo-Json -Depth 100

$result7 =  Invoke-RestMethod -Uri $create -Headers @{authorization = "Basic $base64AuthInfo"} -Method put -ContentType application/json -Body $updateBody

Вы не можете изменить рабочий каталог для всего конвейера. Вы можете изменить рабочий каталог внутри задач.

И есть предопределенные переменные , которые можно использовать для ссылки на места в агентах. Для приведенного ниже примера:

enter image description here

$(Agent.BuildDirectory) сопоставлен с c:\agent_work\1

%(Build.ArtifactStagingDirectory) сопоставлен с c:\agent_work\1\a

$(Build.BinariesDirectory) сопоставлен с c:\agent_work\1\b

$(Build.SourcesDirectory) сопоставлен с c:\agent_work\1\s

Вы также можете отправить запрос функции для вышеупомянутого переименования конвейера и настроить рабочий каталог для всего конвейера (нажмите Предложить функцию и выберите Azure Devops) для команды разработчиков Microsoft. Надеюсь, что они рассмотрят возможность поддержки этой функции в будущем.

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