Azure DevOps(二)Azure Pipeline 集成 SonarQube 维护代码质量和安全性
一,引言
对于今天所分析的 SonarQube,首先我们得了解什么是 SonarQube ? SonarQube 又能帮我们做什么?我们是否在项目开发的过程中遇到人为 Review 代码审核规范?带着以上问题,开始今天的分析内容吧 !!!
1)什么是 SonarQube ?
SonarQube 是一种自动代码审查工具,用于检测代码中的错误、漏洞和代码问题。
2)SonarQube 能帮助我们做什么?
它可以与我们现有的工作流程集成,以实现跨项目分支和拉取请求的持续代码检查。
SonarQube 与 Azure DevOps 的集成允许我们在 Azure DevOps 存储库中维护代码质量和安全性。同时支持 Azure DevOps Server (本地)和 Azure DevOps Services (云端)。在 Azure Pipelines 作业中运行的 SonarQube 扩展可以自动检测正在构建的分支或拉取请求。
重点:SonarQube 也有版本的区分
SonarQube Cloud:Saas 化的产品,托管在 AWS 上的,无需担心安装和维护
SonarQube Server:SonarQube 服务和数据库都是需要我们安装到自己的服务器或者云端服务器,这就需要我们自行维护
两种产品基本上都涵盖了支持多种语言的代码分析,共享相同的底层静态分析引擎来捕获错误,漏洞等。那么让我们正式开始今天的内容
--------------------Azure DevOps 系列--------------------
1,Azure DevOps(一)基于 Net6.0 的 WPF 程序如何进行持续集成、持续编译
2,Azure DevOps(二)Azure Pipeline 集成 SonarQube 维护代码质量和安全性
3,Azure DevOps(三)Azure Pipeline 自动化将程序包上传到 Azure Blob Storage
二,正文
1,创建 SonarQube 项目
登录 sonarCoud.io 选择 Azure DevOps 登录
点击 “+” 选择 “Analyze new project” 创建新项目
选择本次实验的代码项目,点击 “Set Up“ 进行设置
2,配置与 Azure Pipeline 的集成
点击 ”With Azure DevOps Pipelines“ 开始配置
首先需要在 Visual Studio Marketplace 获取、安装 SonarCloud 扩展
选择 "Pipelines =》“”Service connection" ,点击 “New service connection” 添加新的服务连接
在我们的新的 SonarCloud service connection 输入以下参数,参数也来源于刚刚在 sonarcloud 上创建好的项目
点击 “Verify and save”
接下来就是 Pipeline 中添加 Sonar 的 Task了,打开已经编辑好的 Azure Pipeline 的 YAML 文件
1)搜索添加 “Prepare Analysis Configuration”
输入以下参数
SonarCloud Service Endpoint 选择:“SonarCloud”
Organization 选择:“SonarQube_Test”
Project Key:“AllenMaster_NetCore_WPF_Sample”
Project Name:"NetCore_WPF_Sample"
点击 ”Add“
Project Key 可以在 SonarCloud 的项目配置中可以找到
2)搜索添加 “Run Code Analysis” 并添加 Task
3)搜索添加 “Publish Quality Gate Result” 并添加 Task
配置完成后,点击 ”Save“ 保存 YAML 文件,并将修改内容提交到 master 分支
最后,我们可以尝试运行 Pipeline,并在 SonarCloud 上查看代码分析报告
报告了主要有以下几个个指标
Bugs :代码中的重大 bug 错误,可能影响到项目的正常运行。
Code Smells:无关紧要的编码不规范问题,建议改正,点开详情可以看到规范的使用案例。
Vulnerabilities:项目中存在的漏洞,需要进行改正。
Coverage:项目的单元测试情况。
Duplications:项目中的重复代码块,建议重构。
三,结尾
使用 sonarqube 分析项目代码代码的实验全部过程已经完成了。大家也多多操作练习,本文所分享的内容也存在着很多我自己的一些理解,有理解不到位的,还希望多多包涵,并且指出不足之处。
作者:Allen
版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。