Jenkins Pipeline 手记(7)—— 发现 SonarQube Plugin 的 Bug

本文记录了在Jenkins Pipeline中使用SonarQube Plugin时遇到的Bug,分析了问题出现的原因,包括Docker环境变量传递、Sonar Scanner版本和插件配置等,并提供了解决方案,即更新SonarQube Plugin。
摘要由CSDN通过智能技术生成

今天跟大家分享一个Bug的发现之路,由于这个应用场景比较特殊,其中的分析过程我觉值得记录下来。

背景

我们知道,SonarQube 是常用的静态代码扫描工具,可以帮助我们发现各种编程语言编写的项目中的代码问题。针对MSBUILD的项目,SonarQube还提供了专门的扫描工具sonarscanner-msbuild

想要在Jenkins Pipeline中使用这个工具,我们当然可以直接在命令行中调用,并传入需要的参数。但由于参数中有一些常用变量比如server的地址、项目名称等,写死在命令行中不是好办法,可以通过配置的方式提高灵活性。而且,类似sonar.login的参数包含敏感信息,不宜写在命令行中。因此,使用Sonar Scanner的Jenkins 插件是常见的做法(参考资料3)。

很多时候,为了重用Build资源,我们会在Docker container中完成大部分CI任务,Pipeline结束后就可以释放Build的资源留作他用。比如使用Azure VM作为Jenkins的Build Agent时,每个虚拟机的资源在空闲时会释放掉,也无需安装任何Build工具,只需要装好Docker,然后启动container完成Build。(有关Azure VM的用法可以参考另一篇博文。)

重现

我遇到的问题基于这样的场景:需要Build的项目基于.NET Framework 4.8,使用MSBuild进行build。在Pipeline中我会启动并连接一台VM,然后在VM中启动事先指定的Docker container。通过-v指令将VM上的代码根目录装载到container中,然后在container内部执行Build、Test、Sonar Scan、Publish等操作。

在执行Sonar Scan时,我使用的SonarScanner.MSBuild.exe会报错:

Failed to parse properties from the environment variable 'SONARQUBE_SCANNER_PARAMS'

这是在msbuild sonar scan的begin阶段就出错了,因此Build还没开始,Pipeline

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下步骤在Jenkins上使用Pipeline配置SonarQube: 1. 首先,您需要在Jenkins上安装SonarQube插件。在Jenkins的管理界面中,选择“插件管理”,搜索“SonarQube Scanner”并安装。 2. 在SonarQube服务器上创建一个项目,并获取项目的“Project Key”和“Project Token”。 3. 在Jenkins的管理界面中,选择“全局工具配置”,并配置SonarQube Scanner。输入您的SonarQube服务器URL、SonarQube服务器版本、SonarQube Scanner的名称等信息。在“高级”选项卡下,选择“添加”,并添加SonarQube服务器的证书(如果需要)。 4. 在Jenkins中创建一个Pipeline项目,在Pipeline脚本编辑器中输入以下代码: ``` node { stage('Checkout') { //检出代码 } stage('SonarQube analysis') { withSonarQubeEnv('SonarQube服务器名称') { //运行SonarQube扫描 } } } ``` 5. 在“SonarQube analysis”阶段中,使用“withSonarQubeEnv”方法来指定SonarQube服务器的名称。然后运行SonarQube扫描,使用“sh”命令(如果您使用的是Linux系统)或“bat”命令(如果您使用的是Windows系统)来运行SonarQube Scanner。 6. 在运行SonarQube扫描之前,您需要在代码库的根目录下添加一个名为“sonar-project.properties”的文件,并在其中设置SonarQube项目的配置信息,包括“sonar.projectKey”和“sonar.projectToken”。 7. 最后,保存并运行Pipeline项目。Jenkins将自动运行SonarQube扫描并将结果上传到SonarQube服务器。您可以在SonarQube服务器上查看分析结果。 希望这能帮助您配置JenkinsSonarQube
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值