Обновление переменных Build Pipeline из кода .Net - PullRequest
0 голосов
/ 24 июня 2019

У нас есть определение сборки i Azure DevOps, которое создает образ докера и отправляет его в реестр контейнеров Azure. Определение имеет переменную конвейера, которая должна быть вставлена ​​во время сборки. Я должен поставить в очередь сборку из моего кода .Net. Я могу получить определение, но не вижу, как обновить переменную конвейера.

VssBasicCredential credentials = new VssBasicCredential("",persAccToken);
VssConnection connection = new VssConnection(uri, credentials);
BuildHttpClient buildClient = connection.GetClient<BuildHttpClient>();
BuildDefinition def = buildClient.GetDefinitionAsync(projectName, definitionId).Result;

Переменная конвейера «устанавливается во время очереди». Однако я не могу найти способ сделать это из своего кода.

Ответы [ 2 ]

1 голос
/ 25 июня 2019

BuildDefinition имеет свойство Variables, которое содержит переменные конвейера.Эта переменная может быть удалена и затем добавлена ​​с новым значением или обновлена ​​

BuildDefinitionVariable bdv = new BuildDefinitionVariable { AllowOverride = true, 
                               IsSecret = false, Value = "new-vaule" };

def.Variables.Remove("variable-name");
def.Variables.Add("variable-name", bdv);
buildClient.UpdateDefinitionAsync(def, projectName, def.Id);
0 голосов
/ 25 июня 2019

Обновить переменные сборки конвейера из .Net кода

В качестве обходного пути вы можете обновить значение переменной, выдав следующие сценарии Powershell:

"##vso[task.setvariable variable=testvar;]testvalue"

Проверьте документ Команды ведения журнала для получения более подробной информации.

Тогда вы могли бы назвать это .ps1 с вашим .Net кодом.

Надеюсь, это поможет.

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