首页 >> 大全

Jenkins + pipeline SonarQube task ‘AX8z8

2023-12-11 大全 20 作者:考证青年

1.在使用 来实现自动化代码检测获取质检状态时,一直等不到‘OK’的状态,如下图所示,一开始的执行代码和运行的截图,等待一会之后报超时错误

script {timeout(1) {//这里设置超时时间1分钟,如果Sonar Webhook失败,不会出现一直卡在检查状态//利用Sonar webhook功能通知pipeline代码检测结果,未通过质量阈,pipeline将会faildef qg = waitForQualityGate('SonarQube')//注意:这里waitForQualityGate()中的参数也要与之前SonarQube servers中Name的配置相同if (qg.status != 'OK') {error "未通过Sonarqube的代码质量阈检查,请及时修改!failure: ${qg.status}"}}}

2.后来反复查看很久,检查了的,里面配置的服务端和,都没啥问题,最后在Stack 的帖子里面,发现这是一个 的bug, 解决方案是在 Sonar Qube状态确认前,先让 跑一会儿,确保 Task 成功运行状态。

3.下面时修改后的脚本和运行截图

Jenkins + pipeline SonarQube task ‘AX8z8__Jenkins + pipeline SonarQube task ‘AX8z8

script {Integer waitSeconds = 10Integer timeOutMinutes = 10Integer maxRetry = (timeOutMinutes * 60) / waitSeconds as Integer//  未通过代码检查,中断for (Integer i = 0; i < maxRetry; i++) {try {timeout(time: waitSeconds, unit: 'SECONDS') {//利用sonar webhook功能通知pipeline代码检测结果,未通过质量阈,pipeline将会faildef qg = waitForQualityGate()echo "${qg.status}"if (qg.status != 'OK') {error "Sonar quality gate status: ${qg.status}"} else {i = maxRetry}}} catch (Throwable e) {if (i == maxRetry - 1) {throw e}}}}

从上面的运行截图可以看到,在第一次获取状态到最后一次成功获取状态中间等待了几十秒钟,所以这中间的时间有个不确定性,不是大家写的不对,是等待的时间不够长,导致了超时

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了