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,以便它可以在同一日期运行。
我完全理解您的要求。您可以在网站:开发者社区提交建议票来报告此功能。