如何每月触发Azure DevOps经典发布管道?
实现Azure DevOps经典发布管道每月/每30天触发的方案
针对经典发布管道默认计划触发器仅支持每周的限制,以下是几个无需依赖现有CI/CD管道的独立触发方案:
方案一:Azure自动化账户(PowerShell Runbook)触发
通过Azure自动化账户的定时Runbook调用Azure DevOps REST API触发发布:
- 创建Azure自动化账户,新建PowerShell类型的Runbook
- 编写PowerShell脚本调用发布API(示例如下),替换其中的组织、项目、发布管道ID和PAT令牌(需授予发布权限)
- 为Runbook设置定时计划,选择“每月”执行(或自定义每30天的重复周期)
# 配置参数 $organization = "你的组织名称" $project = "你的项目名称" $releaseDefinitionId = "目标发布管道的ID" $patToken = "具有Release权限的PAT令牌" # 构造认证信息与API请求 $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($patToken)")) $apiUrl = "https://vsrm.dev.azure.com/$organization/$project/_apis/release/releases?definitionId=$releaseDefinitionId&api-version=7.1-preview.8" $requestBody = @{ definitionId = $releaseDefinitionId } | ConvertTo-Json # 触发发布 Invoke-RestMethod -Uri $apiUrl -Method Post -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -ContentType "application/json" -Body $requestBody
方案二:Azure逻辑应用定时触发
利用逻辑应用的定时触发器直接调用Azure DevOps发布操作:
- 创建新逻辑应用,选择“定时触发器”,设置触发频率为“月”(或自定义每30天的重复规则)
- 添加“Azure DevOps”连接器,选择“创建发布”操作
- 配置连接器的组织、项目、目标发布管道信息,保存后逻辑应用会按计划自动触发发布
方案三:修改经典发布管道的CRON表达式(进阶操作)
经典发布管道的计划触发器UI仅显示每周选项,但可通过导出/导入管道定义修改CRON表达式:
- 导出目标经典发布管道的JSON定义
- 在JSON中定位
triggers下的scheduled节点,修改cron字段为每月触发的表达式:- 每月1号凌晨触发:
0 0 1 * * - 每30天凌晨触发:
0 0 */30 * *
- 每月1号凌晨触发:
- 将修改后的JSON重新导入管道,验证触发器配置生效
内容的提问来源于stack exchange,提问作者user9513505
相关产品推荐
相关产品推荐

