如何在 Azure DevOps 发布管道中安排每 15 天发布一次触发器

问题描述 投票:0回答:1

我没有得到安排触发器以释放管道每 15 天运行一次的逻辑。 谁能帮忙..!

azure azure-devops azure-pipelines azure-pipelines-release-pipeline
1个回答
0
投票

Azure DevOps 中恐怕没有开箱即用的方法Release Pipeline 可以设置计划触发器每 15 天运行一次 Release Pipeline。

在 Azure DevOps Release Pipeline 中,计划触发器仅支持设置一周中的几天以及每天触发的具体时间。

要解决此问题,您可以使用 YAML Pipeline 中的 Schedule Trigger Cron

您可以根据实际情况确定每个月的运行日期,然后添加多个Cron定义。

例如:

schedules:
- cron: '0 8 26 March *'
  displayName: Daily midnight build
  branches:
    include:
    - main
- cron: '0 8 10,25 April *'
  displayName: Daily midnight build
  branches:
    include:
    - main

然后您可以使用脚本运行 Rest API:Releases - Create 来触发发布或使用扩展任务:Release Orchestrator 扩展来触发 YAML Pipeline 中的发布。

例如:

脚本:

schedules:
- cron: '0 8 26 March *'
  displayName: Daily midnight build
  branches:
    include:
    - main
- cron: '0 8 10,25 April *'
  displayName: Daily midnight build
  branches:
    include:
    - main
....

pool:
  vmImage: windows-latest

steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      $VSTSAccoutName="organiztionname"   
      $teamProjectName="projectname"
      $personaltoken = " PAT "
      $ReleaseMetadata = '{"definitionId":  15  }';
       
      $token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($personaltoken)"))
      $header = @{authorization = "Basic $token"}
      $Uri = 'https://vsrm.dev.azure.com/' + $VSTSAccoutName +'/'+ $teamProjectName + '/_apis/release/releases?api-version=5.0'
      $ReleaseResponse = Invoke-RestMethod -Method Post -ContentType application/json -Uri $Uri -Body $ReleaseMetadata -Headers $header
      Write-Host $ReleaseResponse

Build Pipeline 将按照 cron 中的定义定期运行,然后触发 Release Pipeline,以便它可以在同一日期运行。

我完全理解您的要求。您可以在网站:开发者社区提交建议票来报告此功能。

© www.soinside.com 2019 - 2024. All rights reserved.