背景
我们正在GitHub上创建Pull-Requests。在PR获得批准并且在CircleCI上成功编译和测试更改后,我们按下合并提取请求按钮。
按下按钮后,我们希望GitHub立即合并PR,但它首先在CircleCI上再次运行相同的构建,然后完成合并。
问题
如何在不再次运行CI版本的情况下直接按合并拉取请求后合并成功的PR?
如果不可能,那么如何减少一些开销呢?
对于不成功的PR,我们希望阻止合并......
答案 0 :(得分:4)
那不是发生了什么。当您将分支合并到GitHub上的默认分支(比如master)时,GitHub会按预期方式合并代码。默认分支将有一个或多个新提交(取决于您在GitHub中选择的合并类型)。
因为CircleCI检测到具有新提交的分支,然后它运行该分支的构建。这不是由GitHub发起的,但是CircleCI一如既往地工作。新提交意味着新构建。
正如JB Nizet评论的那样,这通常是必要的,因为功能分支的提示并不总是使用master上的最新代码进行测试。例如,您的CircleCI配置可以具有仅在master
上发生的分支特定指令。
就个人而言,我不会试图阻止最后一次构建运行。这是一项安全检查,这正是CI首先要做的。 如果你真的想要,当你第一次点击合并按钮时,GitHub会给你最后的机会来修改合并提交的提交消息和正文。您只需将[skip ci]
添加到该提交消息的末尾,CircleCI将忽略提交而不运行构建。