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