高质量的代码、快速拉起的环境基础设施、充分的业务质量保证。。。每一点都能为产品成功交付加分。在开发源头对代码质量投入,不管是识别代码风险防微杜渐,还是建立团队研发规范,都是一件收益远大于成本的事情。
社区小伙伴对此的呼声也越来越高,在六一儿童节发布的 v1.12.0 版本中,Zadig 支持集成扫描工具啦,为代码质量提供扫描服务,为开发过程安全保驾。
本文以最为常用的 SonarQube 扫描工具和开源 Zadig 代码仓为例为大家进行介绍。
项目背景
如何使用
只需要 3 步,便可在 Zadig 中获得代码扫描的能力,具体操作如下。
系统管理员:集成 SonarQube
![]()
![]()
![]()
工程师:配置代码扫描
进入项目,新建代码扫描。
![]()
![]()
配置细节如下:
名称:zadig-scan
扫描工具:SonarQube
扫描环境:sonar:latest
sonar 地址:上一步中集成的 SonarQube 服务器地址
代码信息:Zadig 代码库
参数配置:参考 SonarQube 文档 [3],本例中配置内容如下
# Sonar 参数sonar.projectKey=zadig-pkgsonar.projectName=zadig-pkgsonar.sources=./pkgsonar.go.file.suffixes=.go
其他代码扫描工具可参考 自定义构建镜像 [4],先将扫描工具集成进去,扫描工具选择其他,扫描环境中指定自定义的镜像,输入自定义扫描脚本即可实现。
工程师:执行并分析结果
点击 执行 按钮触发代码扫描运行。
![]()
待代码扫描任务执行完毕,点击 查看 链接。
![]()
系统会自动跳转到 SonarQube 系统中。工程师可查看扫描结果并据此对代码中的问题进行修复,做到有的放矢,从源头提高代码质量,降低交付风险。
![]()
Webhook 一触即发
除了在 Zadig 上手动执行扫描任务检查代码质量,还可以基于相关代码变更事件配置触发器,利用 Webhook 的能力自动执行代码扫描。
![]()
- 当满足触发条件的事件发生时(比如 pull request),代码扫描会被自动执行,减少人工介入成本。
![]()
![]()
扫描结果及时反馈
代码库变更自动触发代码扫描后,扫描结果将会反馈到代码仓库中,目前支持 GitLab 代码源,其他代码源也进一步支持中。及时的代码质量反馈可以为团队做代码审查、代码合并等提供数据参考,让质量溶于每一行代码。
![]()
此外,代码扫描结果自动通知到 IM 的功能也在计划中,无需切换系统即可便捷地获得代码质量反馈结果,打通工程师日常开发工作的最后一公里。