powershell - 通过传递不同的 VariableGroup 在多个时间安排 Azure devops 版本
问题描述
我可以使用以下脚本在多个时间安排发布
$timinglist=@(1:30,2:30,3:30)
$PATtoken= 'PAT'
Write-Host "Initialize Autnetication COntext" -ForegroundColor DarkBlue
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($PATtoken)"))
$header=@{authorization= "Basic $token" }
$defurl = "https://vsrm.dev.azure.com/Organization/Project/_apis/release/definitions/13?api-version=5.1"
$definition = Invoke-RestMethod -Uri $defurl -Method Get -Headers $header
$hash = @(
@{
triggerType="schedule";
schedule = @{"daysToRelease"="31";"timeZoneId"="India Standard Time";"startHours"=01;"startMinutes"=30}
}),
@{
triggerType="schedule";
schedule = @{"daysToRelease"="31";"timeZoneId"="India Standard Time";"startHours"=02;"startMinutes"=30}
}),
@{
triggerType="schedule";
schedule = @{"daysToRelease"="31";"timeZoneId"="India Standard Time";"startHours"=03;"startMinutes"=30}
})
$definition.triggers = $hash
$definition.variableGroups=@(10,11,12)
$json = @($definition) | ConvertTo-Json -Depth 99
$updatedef = Invoke-RestMethod -Uri $defurl -Method Put -Body $json -ContentType "application/json" -Headers $header
Write-Host ($updatedef.triggers | ConvertTo-Json -Depth 99)
我能够将变量组作为 $definition.variableGroups=@(10,11,12) 传递。所以这里的变量组 10,11 和 12 将通过三个版本中的每一个。但我想通过唯一的变量组 10 反对在 01:30 发布和变量组 12 在 02:30 和 11 在 03:30 . 可能吗
解决方案
您应该使用任务组、环境和变量组来完成此任务。
您定义一个任务组,其中包含您要重用的操作。
您可以在单个版本中的许多不同阶段使用该任务组。每个发布阶段都可以绑定到不同的任务组。然后,您只需调用 REST API 即可触发正确阶段的部署。
推荐阅读
- replace - Couchbase 创建不可变属性或包含创建日期时间的元信息
- javascript - 在 AMP html 中添加自定义 js 文件?
- reactjs - 如何在不破坏服务器的情况下重命名反应文件?
- ffmpeg - ffmpeg:剪切视频但长度错误
- data-warehouse - 数据仓库 - 数据的版本控制
- c++ - linux服务器中的Recv缓冲区大小
- java - HAPI 2 v2.3 - setValidating(false) 对 XMLParser 没有影响
- c# - 如何从数据库中检索 Checkedlistbox 值
- javascript - 多个关注 ID 导致 Twitter 流 API 出现状态 401 错误
- asp.net-core - 如何在 EF Core 中保存来自另一个 DbContext 的相关数据?