1.sonarqube介绍
在devops理念中,ci/cd毫无疑问是最重要的一环,而代码质量检查则是ci中必不可少的一步。在敏捷开发的思想下,代码的迭代周期变短,交付速度提升,这个时候代码的质量就很难保证。
测试只能保证功能完整与可用,而代码的质量纯靠review的话效率又很低,这个时候sonarqube就可以很好的帮助开发自动化检测代码质量,降低bug数量,也可以根据扫描结果养成良好的编程习惯,同时也可以减少测试的工作量,真正提升整个团队效率,实现devops理念。
sonar(sonarqube)是一个开源平台,用于管理源代码的质量,它不仅是一个质量数据报告工具,更是代码质量管理平台。它通过插件的形式来管理代码,它支持的语言包括:java,python,php,c#,c,js等。
sonarqube的由以下四部分组成:
一个sonarqube server
一个sonarqube database
不同种类的sonarqube plugins
一个或者多个sonarscanners
在持续集成中,sonar主要通过以下方式进行集成:
为了简单高效地部署及管理,决定采用docker-compose版本进行部署。亲测无坑,因为坑以及被我踩完了!!!
2.sonarqube的安装与配置
2.1.postgresql
首先需要安装数据库,开源的可以用 mysql 或者 postgresql 。官网上已经声明 sonarqube 7.9 版本以上不再支持 mysql 了,我们为了以后升级新版本不做数据库迁移,尽量使用 postgresql
然后我们利用docker-compose部署sonarqube,docker以及docker-compose的部署方式自行百度
2.2. sonar-compose.yml 文件
移动到/data/sonar 运行docker-compose文件
检查docker容器状态,这边我是将sonarqube的端口映射到9090
2.3. 安装中文插件
登录sonarqube客户端,访问http://192.168.5.109:9090
初始账户密码都是admin admin,第一次登录需要修改登录密码
由于找不到7.4版本,所以我们选择离线安装
重新启动之后即可显示中文界面
生成完了之后将令牌保存下来 ,后面会用到
3.jenkins集成sonarqube
3.1.登录jenkins客户端
jenkins 我直接使用迷你主机的jenkins ,具体的安装步骤以及触发器 可以看我之前那些的jenkins相关的文档
登录jenkins的web页面,这里我已licloud-admin项目为例 当然后续也可以新建项目、
当然 在此之前 我们需要先下载sonar的插件,以及系统配置,和全局工具配置
3.2. 下载插件
搜索sonar,下载soanrqube scanner for jenkins ,这里我已经提前安装好了
3.3.系统配置
找到soanrqube servers
全局凭据,将我们之前保存的sonar令牌 复制粘贴到secret,保存即可
3.4.全局工具配置
找到sonar安装,自动安装选择相应的版本,保存退出,到这里我们所有的全局变量就配置好了
4.jenkins+sonarqube实现python项目静态扫描
这里我们开始创建项目实现python代码的静态扫描,这里我以licloud-admin项目为例
添加构建后步骤
其中: sonar.projectkey,sonar.projectname(项目名称,可在项目工程的pom.xml中找) sonar.projectversion是版本(pom.xml中的版本信息) sonar.sources是需要sonar分析的项目工程中的文件路径
保存退出
点击立即构建 构建成功 这个时候我们可以去sonar的web页面查看一下记录
代码已经扫描完成
可以通过点击问题 查看 具体的一些详细信息
发表评论