Azure DevOps定时发布仅部署最新版本的配置方法咨询
Azure DevOps定时发布仅部署最新版本的解决方案
方法1:修改定时触发器的部署选项
这是最直接的配置方式,无需额外脚本:
- 打开目标发布管道,切换到触发器选项卡
- 找到已配置的每日6点定时触发计划,点击编辑按钮
- 在弹出的配置面板中,找到部署选项,勾选「仅部署最新的成功版本」
- 保存配置后,后续定时触发时只会选择该发布管道下最新的成功版本进行部署
方法2:添加版本校验的前置脚本
如果需要更灵活的控制,可以在发布阶段添加前置PowerShell脚本,判断当前版本是否为最新:
- 在发布管道的目标阶段最前端,添加一个PowerShell脚本任务
- 勾选任务设置中的「允许脚本访问OAuth令牌」,确保脚本能调用Azure DevOps API
- 粘贴以下脚本(可根据需求调整API版本):
# 读取环境变量中的组织、项目和发布管道ID $orgUrl = "$(System.TeamFoundationCollectionUri)" $projectName = "$(System.TeamProject)" $releaseDefId = "$(Release.DefinitionId)" $accessToken = "$(System.AccessToken)" # 构建API请求头 $headers = @{ Authorization = "Bearer $accessToken" } # 调用API获取最新发布版本 $apiEndpoint = "$orgUrl/$projectName/_apis/release/releases?definitionId=$releaseDefId&`$top=1&api-version=7.1-preview.8" $latestRelease = Invoke-RestMethod -Uri $apiEndpoint -Headers $headers -Method Get # 对比当前版本与最新版本 $latestReleaseName = $latestRelease.value[0].name $currentReleaseName = "$(Release.ReleaseName)" if ($currentReleaseName -ne $latestReleaseName) { Write-Error "当前版本 $currentReleaseName 不是最新版本,最新版本为 $latestReleaseName,终止部署流程" exit 1 }
- 保存管道配置后,每次发布前会自动校验,非最新版本直接终止部署
方法3:配置版本保留策略(辅助优化)
配合前两种方法,清理旧版本可进一步避免误触发:
- 打开发布管道的保留选项卡
- 设置「保留成功的版本」数量为1(或符合业务需求的最小数量)
- 开启「自动删除旧版本」,超过保留数量的旧版本会被自动清理,减少候选部署版本
内容的提问来源于stack exchange,提问作者BuckBuchanan
相关产品推荐
相关产品推荐

