powershell - 在多个时间安排 Azure devops 版本
问题描述
我可以使用 Rest API call 来安排发布。有没有办法让它运行多次。我试过的代码如下。
$timinglist=@(1:30,2:30,3:30)
foreach($time in $timinglist)
{
$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
$hour=$time.Split(":")[0]
$minute=$time.Split(":")[1]
$hash = @(
@{
triggerType="schedule";
schedule = @{"daysToRelease"="31";"timeZoneId"="India Standard Time";"startHours"=$hour;"startMinutes"=$minute}
})
$definition.triggers = $hash
$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)
}
我的目标是在 1:30 2:30 和 3:30 排队发布。但是使用上面的代码,它只在 3:30 运行,其他两个没有发生。
解决方案
triggers
每次发送请求时,您都会覆盖该属性。所以最后一个值胜过旧值。
triggers
属性是一个数组BuildTrigger
,你不需要执行3个请求,一个!
这是triggers
文档。
编辑:
我不是 powershell 向导,但您应该创建一个BuildTrigger
对象数组,如下所示:
$hash = @(
@{
triggerType="schedule";
schedule = @{"daysToRelease"="31";"timeZoneId"="India Standard Time";"startHours"=$hour1;"startMinutes"=$minute1}
},
@{
triggerType="schedule";
schedule = @{"daysToRelease"="31";"timeZoneId"="India Standard Time";"startHours"=$hour2;"startMinutes"=$minute2}
},
@{
triggerType="schedule";
schedule = @{"daysToRelease"="31";"timeZoneId"="India Standard Time";"startHours"=$hour3;"startMinutes"=$minute3}
}
)
推荐阅读
- amazon-web-services - 使用自动缩放为 AWS Elasticbeanstalk 上的 Google Places API 密钥限制创建静态 IP
- python - Why is aiohttp horribly slower than gevent?
- android - 我们可以停止 evrencoskun TableView 在 android 中的垂直滚动吗?
- minizinc - minizinc修复功能有什么用?
- node.js - 如何避免在 MongoDB 中使用 db.insertMany() 在集合中插入重复值?
- outlook - 适用于 Android 的 Outlook 加载项:尝试访问 userProfile 时出现异常。访问受保护的 Javascript API-Office 成员需要提升权限
- android - 如何在 Android 8 中链接 html 页面
- r - 在 R 和 knitr 中构建表格时将一个变量上标到另一个变量上
- neural-network - 从任何平台加载和使用预训练的神经网络
- ios-universal-links - 通用链接不会在临时可安装版本中打开应用程序