解决Sonarqube quality gate获取不到Sonarqube正确扫描结果的问题

问题

在Jenkins pipeline中,一般都会用到Sonar-scanner来扫描代码,扫描完之后,把结果上传到SonarQube中,SonarQube把结果与质量阀进行对比,然后通过Sonarqube quality gate来判断这次扫描结果是成功还是失败。

不少同学都遇到过Sonarqube quality gate 获得的最后结果不正确,明明SonarQube中的结果是success,而Sonarqube quality gate判断的结果是pending。

这是怎么一回事呢?

原因在于,SonarQube如果没有配置webhook的情况下,Sonarqube quality gate只会第一次主动去请求结果,如果这个时候SonarQube还没有分析完毕,那么就会返回一个in_progress.接下来,Sonarqube quality gate不会再去主动请求,而是被动等待webhook。如果没有配置webhook,那么就会进入一直等待的状态。

常用的解决方法有二:

1.在Sonarqube quality gate添加等待10秒的时间(治标不治本)

2.在SonarQube里添加Jenkins的webhook。(这种方法最好,不需要加等待时间)

添加之后。一切正常,可以正确获得Sonarqube的最新结果

Posted in docker相关