【问题标题】:Schedule a Azure devops release in multiple timings在多个时间安排 Azure devops 版本
【发布时间】:2019-11-27 11:06:10
【问题描述】:

我可以使用 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 运行,其他两个没有发生。

【问题讨论】:

    标签: powershell azure-devops azure-pipelines azure-pipelines-release-pipeline azure-devops-rest-api


    【解决方案1】:

    每次发送请求时,您都会覆盖 triggers 属性。 所以最后一个值胜过旧值。

    triggers属性是BuildTrigger的数组,不需要执行3个请求,一个就行! Thistriggers 文档。

    编辑:

    我不是 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}
       }
       )
    

    【讨论】:

    • 但是如何在上面的powershell脚本中指定那个数组
    • 这是另一个问题,但我尽量回答。我编辑了添加数组创建的答案。
    • 添加了一个新问题请检查您是否也通过它stackoverflow.com/questions/59087121/…
    猜你喜欢
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    • 2019-10-15
    • 2019-04-02
    • 1970-01-01
    相关资源
    最近更新 更多