问题描述
我有4条创建PR时执行检查的Azure管道。配置它们,以便根据所做的更改排除/包括某些检查。例如,如果PR仅包含前端代码更改,则没有理由运行与检查后端代码更改关联的检查管道。
在GitHub分支配置中,有一个选项“需要在合并之前先通过状态检查”,但是当您检查必须选择必须通过哪些管道时。这样做是为了使您选择的 管道能够运行并通过才能合并,但是通过我们的配置,它可能没有理由运行,因此PR会永远卡住。
是否有一种方法要求合并之前需要通过GitHub状态检查,但是必须通过的状态检查是在创建PR时确定的,而不是事先确定的?
解决方法
根据我的测试,我可以重现这种情况。
当我在Github中创建多个状态检查(Azure Pipeline)时,这些检查仅在创建请求请求后接受构建状态。
因此,由于某些配置(例如路径过滤器),如果相关管道未运行,则此PR将被卡住。
在这种情况下,您可以使用API将现有的Azure管道状态发送到“状态”检查。
API URL:
Post https://api.github.com/repos/{owner}/{repo}/statuses/{sha}
需求体:
{
"state": "success","target_url": "Build Status badge Url","description": "Build verify","context": "Staus Check name"
}
然后您可以通过Github中的状态检查。