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扫描已经完成了,所以很快就会有结果产生。

相关文章
|
6月前
|
jenkins Shell 测试技术
|
6月前
|
安全 jenkins Java
Java、Python、C++支持jenkins和SonarQube(一)
Jenkins 是一个开源的 持续集成(CI)和持续交付(CD) 工具,用于自动化构建、测试和部署软件项目。它基于 Java 开发,支持跨平台运行,并拥有丰富的插件生态系统,可以灵活地扩展功能
417 5
|
6月前
|
jenkins Java Shell
Java、Python、C++支持jenkins和SonarQube(全集)
Jenkins 是一个开源的持续集成(CI)和持续交付(CD)工具,用于自动化构建、测试和部署软件项目。它基于 Java 开发,支持跨平台运行,并拥有丰富的插件生态系统,可以灵活地扩展功能
586 1
|
6月前
|
jenkins Java 持续交付
Java、Python、C++支持Jenkins和SonarQube(三)
Python与Jenkins和SonarQube
297 1
|
6月前
|
jenkins Java 测试技术
|
监控 jenkins Shell
jenkins结合gitlab实现CI(持续集成)
通过本文的介绍,我们详细了解了如何结合Jenkins和GitLab实现持续集成。从环境准备、插件配置到Pipeline任务创建和CI流程监控,每一步都提供了详细的操作步骤和示例代码。希望本文能帮助开发者快速搭建起高效的CI系统,提高项目开发效率和代码质量。
1344 9
|
Java jenkins 持续交付
Jenkins集成Maven
通过以上步骤,可以在Jenkins中成功集成Maven,实现自动化构建和部署。通过定时构建、SCM轮询等方式,可以确保代码库中的最新变更能够及时构建和测试,提高开发效率和代码质量。这种集成方式在实际项目中具有广泛的应用前景,能够显著提升团队的协作效率。
487 8
|
监控 jenkins Linux
从 Jenkins 持续集成出发:探究如何监控员工电脑屏幕
Jenkins 在企业信息化管理中用于自动化构建、测试和部署,提高开发效率。本文讨论了其重要性,并从技术角度探讨了屏幕监控的可能性,但明确反对非法监控,强调应合法合规地管理企业和尊重员工隐私。
286 12
|
运维 jenkins Java
Jenkins在持续集成与持续部署中的价值
Jenkins在持续集成与持续部署中的价值
|
jenkins Java 持续交付
Gitee+Jenkins+SonarQube代码上线的实战操作
通过以上步骤,就可以实现基于Gitee、Jenkins和SonarQube的代码上线流程,确保代码的质量和上线过程的自动化和可控性。在实际操作中,可以根据项目的具体需求和环境进行适当的调整和优化。

推荐镜像

更多