代码门禁是一种在代码合并之前就验证代码质量以保护主干分支代码的持续集成策略。通过这种策略,可以保护主分支代码避免因合码引入缺陷导致构建中断,以确保 主分支代码始终是可部署成功的,并且不会因微小的缺陷而影响到你正在并行开发的同事提交代码到主分支。
之前写过一篇文章介绍微软的代码门禁实践,本文则基于SonarCloud实现如何基于扫描结果控制代码合并到主分支。
实践涉及到的清单:
工具:Sonarcloud
代码:Github仓库
代码门禁实现的流程图:

登录 https://sonarcloud.io/,绑定我们的Github代码仓库。

绑定OK之后,我们可以查看GitHub项目settings->integrations->Github apps,就可以使用sonarcloud提供的代码云扫描服务了。

回到代码仓库,我在dev分支改了几行代码,然后commit,接着提交一个pull request。


这时候我们可以看到,pr创建后会自动进行dev分支提交的代码扫描,扫描结果是passed,表示代码扫描通过。

sonar扫描的详细结果,可以点击上图的蓝色字体跳转到sonarcloud查看,截图如下。

接下来我们可以merge这个pr到主分支了。
