jenkins流水线+SonarQube集成检查代码

简介: jenkins流水线+SonarQube集成检查代码

单独的jenkins+sonarqube已经在另外一篇讲过了。

那么如果遇到一个流程的时候怎么将sonarqube集成在流水线呢。

例如:拉取代码-检查代码,如果通过质量阀则继续后面的步骤(部署启动删除等操作)

官方文档有个小例子,直接拿过来看看。根据自己的需求进行调整即可。

sonar_guanfang.png (645×638).png

在实际测试中,sonar的质量阀设置标准根据自己的项目实际来设置,如果没有通过,则jenkins pipline就不会执行下面其他的步骤。

此处sonar执行的是放在项目根目录下的sonar-scanner.properties文件,该文件里就是写的sonar执行的命令,和直接将命令行写到sh后面是一样的。

sonar-scanner.png (520×158).png

pipline_sonar.png (871×380).png

这里需要注意的就是修改scanner的路径和sonarqube路径(分别在全局工具和系统配置里定义好),检查质量阀状态这个步骤中sleep(8)格外说明一下:

经常会发现pipeline进行到waitForQualityGate的时候卡主了,然后一直等到超时失败。如果是一直都这样,可能是代码问题,但是中间也发现了有成功的,比较了一下其中的日志,能够发现在调用waitForQualityGate的时候,如果状态是成功,

就直接通过了,如果是pending状态,就会一直阻塞。看了文档,这个方法应该是同步的,但是按照实际的测试,

在调用方法的时候会去请求一次sonar结果,如果不是终态,就会阻塞住,然后貌似也没有再次去请求最新的状态,

相当于是sonar jenkins插件的一个bug。


因此想了个粗暴的办法就是在waitForQualityGate之前,先sleep几秒,然后去取状态的时候就能直接取到终态了。

因为在调用waitForQualityGate的时候,sonar扫描已经完成了,所以很快就会有结果产生。

相关文章
|
5月前
|
人工智能 自然语言处理 安全
代码静态扫描工具集成与实践
代码静态扫描工具(Static Application Security Testing, SAST)是在不运行代码的情况下,通过分析源代码或二进制代码来发现潜在安全漏洞、代码缺陷和质量问题的工具
630 4
|
5月前
|
机器学习/深度学习 编解码 计算机视觉
用于高效高光谱图像分类的多尺度上下文感知集成深度 KELM(Matlab代码实现)
用于高效高光谱图像分类的多尺度上下文感知集成深度 KELM(Matlab代码实现)
143 2
|
5月前
|
编解码 算法 自动驾驶
【雷达通信】用于集成传感和通信的OFDM雷达传感算法(Matlab代码实现)
【雷达通信】用于集成传感和通信的OFDM雷达传感算法(Matlab代码实现)
516 125
|
6月前
|
机器学习/深度学习 算法 数据挖掘
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
211 0
|
7月前
|
安全 API 数据安全/隐私保护
低代码革命:API无代码集成如何让企业“3天上线一个生态”?
在数字化转型浪潮中,API成为释放数据价值、提升企业效率的核心。本文详解API架构设计、安全实践与跨平台集成,为CTO提供效率提升指南,涵盖微服务、安全认证、协议选择、低代码集成及未来趋势,助力企业构建敏捷、安全、高效的数字生态。
|
5月前
|
机器学习/深度学习 数据采集 传感器
基于多尺度集成极限学习机回归(Matlab代码实现)
基于多尺度集成极限学习机回归(Matlab代码实现)
161 1
|
5月前
|
机器学习/深度学习 运维 算法
【EI复现】一种建筑集成光储系统规划运行综合优化方法(Matlab代码实现)
【EI复现】一种建筑集成光储系统规划运行综合优化方法(Matlab代码实现)
150 1
|
9月前
|
JSON JavaScript API
MCP 实战:用配置与真实代码玩转 GitHub 集成
MCP 实战:用配置与真实代码玩转 GitHub 集成
1909 4
|
12月前
|
监控 jenkins Shell
jenkins结合gitlab实现CI(持续集成)
通过本文的介绍,我们详细了解了如何结合Jenkins和GitLab实现持续集成。从环境准备、插件配置到Pipeline任务创建和CI流程监控,每一步都提供了详细的操作步骤和示例代码。希望本文能帮助开发者快速搭建起高效的CI系统,提高项目开发效率和代码质量。
1204 9
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
439 2

推荐镜像

更多