如何使用Azure CLI更改或更新Azure管道上的预部署条件?

时间:2020-01-07 21:39:18

标签: azure azure-devops azure-pipelines azure-pipelines-release-pipeline azure-cli

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

enter image description here

1 个答案:

答案 0 :(得分:0)

我不相信az devops扩展支持UI样式管道,而且鉴于多阶段YAML管道是当前的未来,它可能不会支持。不过,用于此更改的REST API非常简单,您可以使用powershell轻松修复此问题。

Sample in 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;

并且the open source vsteam tool也可以选择获取和更新发行版定义:

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