在DevOps理念中,CI/CD毫无疑问是最重要的一环,而代码质量检查则是CI中必不可少的一步。在敏捷开发的思想下,代码的迭代周期变短,交付速度提升,这个时候代码的质量就很难保证。 测试只能保证功能完整与可用,而代码的质量纯靠review的话效率又很低,这个时候SonarQube就可以很好的帮助开发自动化检测代码质量,降低bug数量,也可以根据扫描结果养成良好的编程习惯,同时也可以减少测试的工作量,真正提升整个团队效率,实现DevOps理念。 在上周六与本周三的复习课程中,芒果就带大家学习了怎么使用SonarQube来做Python项目的代码扫描工作,以及怎么使用Jenkins和SonarQube集成,这里我们做个小总结。 Sonar(SonarQube)是一个开源平台,用于管理源代码的质量,它不仅是一个质量数据报告工具,更是代码质量管理平台。它通过插件的形式来管理代码,它支持的语言包括:Java,Python,PHP,C#,C,JS等。 SonarQube的由以下四部分组成: 一个SonarQube Server 一个SonarQube Database 不同种类的SonarQube Plugins 一个或者多个SonarScanners 在持续集成中,sonar主要通过以下方式进行集成: Sonarqube的安装比较简单,由于最新的7.9版本必须使用11以以上版本的JDK,所以我们这里使用7.7或者7.8版本。 Sonarqube的下载与安装: #下载地址: Sonarqube的配置: #新建sonar用户(sonar使用root用户启动会失败): Sonar Scanner作为安装在构建或者持续集成服务器上的扫描工具,通过扫描代码,上传扫描结果给Sonar Server 以显示结果。 Sonar Scanner安装: #下载地址:https://docs./latest/analysis/scan/sonarscanner/ 安装好Sonar Scanner就可以在该主机上进行对应项目的静态扫描工作。要想列出已经下载下来的镜像,可以使用 docker image ls 命令。 通过Jenkins使用的Sonar Scanner插件可以构建自动化的项目代码扫描计划,并将扫描结果反馈给Sonar Server。 在安装好Sonar Scanner插件之后需要在Jenkins中添加Sonar Server相关配置: 并对构建服务器上Scanner进行配置: 接下来就可以在构建与部署任务之前添加一个扫描任务了: 手工构建或者等待构建触发器出发构建,就可以完成整个代码扫描任务。 当然Sonar的使用不仅仅如此简单,比如我们可以去添加自定义的扫描规则,因为篇幅原因,我们仅仅介绍以上部分,对于更多的内容,我们会在之后的文章进行更新。 周六Vip课程预告 本周六芒果将带大家继续TestOps测试运维Python专项课程,在对整个Django的开发、扫描、单测以及他们的容器化管理、持续集成有个认识之后,我们将学习Django项目的自动化测试环境。 每周六全天Vip课程,每周三晚免费课程总结及回顾答疑 精益技术 赋能过程 |
|