如何配置使BitBucket将Azure DevOps带警告的成功构建判定为成功?
解决BitBucket将Azure DevOps「带警告的成功」构建判定为失败的问题
方案1:强制覆盖Azure DevOps流水线的最终状态
在流水线末尾添加一个脚本任务,把「带警告的成功」状态强制转为「成功」,确保发送给BitBucket的状态为成功:
- PowerShell脚本示例:
Write-Host "##vso[build.complete result=Succeeded;]" - Bash脚本示例:
需将该任务设置为总是运行(即使前面任务触发警告),保证最终输出的状态能被BitBucket识别为成功。echo "##vso[build.complete result=Succeeded;]"
方案2:自定义向BitBucket发送的状态标识
Azure DevOps默认会把「带警告的成功」(SucceededWithIssues)映射为BitBucket判定的失败状态,可通过手动调用API覆盖默认通知:
- 在Azure DevOps流水线中添加「Invoke REST API」任务,构建完成后调用BitBucket的状态更新接口。
- 调用
/2.0/repositories/{workspace}/{repo}/commit/{commit}/statuses/build接口,将state参数设为SUCCESSFUL,直接指定PR的构建状态为成功。
方案3:调整UI测试重试配置(可选)
如果不需要保留「带警告的成功」的过程记录,可修改UI测试任务的重试逻辑:
在Azure DevOps的测试任务设置中,开启「重试后将测试结果标记为成功」选项(具体名称依测试任务类型略有差异),这样初始失败后重试通过的测试,不会触发「带警告的成功」状态。
内容的提问来源于stack exchange,提问作者Matthew van Boheemen
相关产品推荐
相关产品推荐

