孙健,爱可生研发工程师,负责 SQLE 相关开发;
本文来源:原创投稿
爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系
目前开发阶段基本都是使用 CI/CD 平台进行持续集成,例如 Jenkins ,GoCD ,git平台的 CI/CD 等,该阶段主要用来进行代码的检查,单测,打包。好处是标准化开发流程,减少复杂的工作量。因此在开发阶段也可以将SQL审核作为一个检查模块集成进CI流程。将 SQL审核事宜前置到开发阶段能够减少后期SQL审核的压力。目前使用 SQLE 的审核任务能够做到:

SQLE 的 Scanner 与CI/CD的集成方式是通过添加bash类型的任务,一般CI/CD都支持该方式。SQLE Scanner 本质上是一个二进制命令行工具,该工具集成在 SQLE 内,可以在 SQLE 平台安装目录的 bin 下找到,具体的使用方式和命令行参数解释参考:https://actiontech.github.io/sqle-docs-cn/3.modules/3.6_auditplan/scanner_management.html 。
3. 当jenkins任务触发时会进行SQL审核
Jenkins 集成后进行SQL审核的效果如下两张图所示:
审核结果会立即通过 Jenkins 的任务返回,当 SQL 不合规触发规则建议,可以看到上图所示的构建失败的结果,此时CI流程会通知开发,开发需要优化完不合规 SQL 后再次提交代码触发CI构建,如果SQL优化成功则SQL审核会构建成功。
4. SQLE 页面查看结果开发负责人可以通过SQLE平台查看审核结果和SQL统计,提前了解目前项目中SQL的开发质量和碰到的问题。SQL统计信息和审核结果如下两张图所示:
四、总结
以上最简单的SQL审核与CI/CD流程集成的试用,大家可以下载安装 SQLE 并结合自己公司CI/CD 试一下,SQLE 的安装参考主页:https://github.com/actiontech/sqle ;
更多使用场景可以参考:https://actiontech.github.io/sqle-docs-cn/3.modules/3.6_auditplan/introduction.html 。