从.Net代码更新Build Pipeline变量

时间:2019-06-24 14:55:59

标签: azure-devops

我们在Azure DevOps中有一个生成定义,该定义创建docker映像并将其推送到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 个答案:

答案 0 :(得分:1)

BuildDefinition具有包含管道变量的变量属性。可以删除该变量,然后添加新值或对其进行更新

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);

答案 1 :(得分:0)

  

从.Net代码更新构建管道变量

作为解决方法,您可以通过使用Powershell脚本发出以下内容来更新变量值:

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

查看文档Logging Commands,了解更多详细信息。

然后,您可以使用.Net代码将此称为.ps1

希望这会有所帮助。