如果CI失败,是否可以阻止GitHub上分支的合并,但不能在每次提交时都运行CI?
这里有更多上下文。我们在GitHub上有一个受保护的master
分支,还有许多短期功能分支。您只能通过拉取请求合并分支,如果该分支已被批准且CI已通过。 CI状态通过GitHub的状态检查传达。 CI会在对该分支的每次提交上运行。
问题是运行CI作业需要30分钟。另外,我们还必须为运行的每一分钟付费。现在,当然,可以有一些方法使其运行更快。
但是有一种方法,不是在每次对功能分支的提交时都运行CI,而是在按下“合并”按钮与实际合并发生之间的那一刻?
不,这不可能。
GitHub甚至都不允许您使用合并按钮,直到分支以您配置的方式变为绿色为止。此外,CI工具与GitHub配合使用的方式是通过获取推送请求的通知。因此,您的CI系统仅在打开PR或向其推送新数据时才得到通知。
可能配置CI系统使其不自动运行,并存储发送给它的数据,然后在按下其UI中的按钮时运行。如果恢复为绿色,则30分钟后,您可以按合并按钮。那将是您想要做的最接近的事情,但这取决于您特定的CI提供程序,因此您必须向他们查询。