首页 > 解决方案 > 如何使用 azure cli 更改或更新 azure 管道上的预部署条件?

问题描述

我正在尝试找到一个示例,该示例可以显示如何使用 azure cli 更新 azure devops 管道上的预部署条件,例如选择/取消选择下面的复选框之一

在此处输入图像描述

标签: azureazure-devopsazure-pipelinesazure-pipelines-release-pipelineazure-cli

解决方案


我不相信这个az devops扩展支持 UI 风格的管道,而且很可能不会,因为多阶段 YAML 管道是当前的未来。不过,用于此更改的 REST API 非常简单,您可以使用 powershell 轻松解决此问题。

C# 中的示例

string collectionUri = args[0];
string projectName = args[1];
string patToken = args[2];
int releaseId = int.Parse(args[3]);

VssConnection connection = new VssConnection(new Uri(collectionUri), new VssBasicCredential("username", patToken));
ReleaseHttpClient client = connection.GetClient<ReleaseHttpClient>();
var release = client.GetReleaseAsync(projectName, releaseId).Result;

var variableValue = new ConfigurationVariableValue();
variableValue.Value = "bar";
release.Variables.Add("foo", variableValue);

var updatedRelease = client.UpdateReleaseAsync(release, projectName, releaseId).Result;

开源vsteam工具还可以选择获取和更新发布定义:

PS C:\> $b = Get-VSTeamReleaseDefinition -ProjectName Demo -Id 23 -Raw
PS C:\> $b.variables.subscriptionId.value = 'Some New Value'
PS C:\> $body = $b | ConvertTo-Json -Depth 100
PS C:\> Update-VSTeamReleaseDefinition -ProjectName Demo -ReleaseDefinition $body

要获取版本 ID,可以查询一个项目中的所有版本。并且存在类似的调用来查询帐户中的所有项目。

 PS C:\> Get-VSTeamReleaseDefinition -ProjectName demo

推荐阅读