Azure跨项目Pipeline触发失败:源Pipeline完成后目标未触发
以下是针对你配置跨项目Pipeline触发后未生效的常见排查点和解决方法:
权限缺失是最常见原因
目标Pipeline所在项目的服务主体(或用于触发的身份)必须拥有源项目pqr的Pipeline读取权限。进入源项目的「设置」-「权限」-「Pipeline权限」,确认目标项目的服务账号已被添加到「Pipeline Readers」角色,或直接分配「读取Pipeline」的权限。分支触发规则可能未匹配
虽然配置了"*",但部分场景下*不会匹配带斜杠的分支(如feature/test),可以尝试将分支规则改为refs/heads/*来明确覆盖所有分支。同时确认源Pipeline运行的分支确实符合规则,比如如果源Pipeline是在main分支运行,检查是否有其他分支过滤规则冲突。源Pipeline状态不符合触发条件
默认情况下,只有源Pipeline成功完成时才会触发目标Pipeline。如果源Pipeline是失败、取消或部分成功状态,不会触发。去源项目的Pipeline历史中,查看触发那次运行的最终状态是否为「成功」。资源配置细节需核对
source字段必须是源Pipeline的显示名称(不是YAML文件的名字,是Azure DevOps中Pipeline列表里的名称)project字段要和源项目的名称/ID完全匹配,部分环境对大小写敏感- 确保
pipeline自定义名称没有拼写错误,虽然它是内部标识,但错误可能导致资源识别失败
手动触发源Pipeline测试
如果目标Pipeline的配置是在源Pipeline之前完成的,之前的源运行不会触发新配置的目标Pipeline。手动运行一次源Pipeline,触发系统识别新的触发关系。查看目标Pipeline的触发日志
进入目标Pipeline的「触发」页面,查看「资源触发」的历史记录,这里能看到系统是否接收到源Pipeline的完成事件,以及是否有触发失败的原因提示。
内容的提问来源于stack exchange,提问作者kiran itagi

