GitHub在拉取请求后调用CI构建

时间:2017-08-15 10:10:16

标签: github circleci

背景

我们正在GitHub上创建Pull-Requests。在PR获得批准并且在CircleCI上成功编译和测试更改后,我们按下合并提取请求按钮。

enter image description here

按下按钮后,我们希望GitHub立即合并PR,但它首先在CircleCI上再次运行相同的构建,然后完成合并。

问题

如何在不再次运行CI版本的情况下直接按合并拉取请求后合并成功的PR?

如果不可能,那么如何减少一些开销呢?

对于不成功的PR,我们希望阻止合并......

1 个答案:

答案 0 :(得分:4)

那不是发生了什么。当您将分支合并到GitHub上的默认分支(比如master)时,GitHub会按预期方式合并代码。默认分支将有一个或多个新提交(取决于您在GitHub中选择的合并类型)。

因为CircleCI检测到具有新提交的分支,然后它运行该分支的构建。这不是由GitHub发起的,但是CircleCI一如既往地工作。新提交意味着新构建。

正如JB Nizet评论的那样,这通常是必要的,因为功能分支的提示并不总是使用master上的最新代码进行测试。例如,您的CircleCI配置可以具有仅在master上发生的分支特定指令。

就个人而言,我不会试图阻止最后一次构建运行。这是一项安全检查,这正是CI首先要做的。 如果你真的想要,当你第一次点击合并按钮时,GitHub会给你最后的机会来修改合并提交的提交消息和正文。您只需将[skip ci]添加到该提交消息的末尾,CircleCI将忽略提交而不运行构建。