我已将SonarQube集成到Build Pipeline中,根据:SonarQube Documentation
我正在使用SonarQube Scanner for Maven。 分析工作正常,从Jenkins到SonarQube的通信都没问题。
如果质量门失败,要打破构建,我使用waitForQualityGate(),如文档中所述。 这是有效的,但只有在我之前添加一个sleep语句时才会有效。
似乎,SonarQube中的Webhook无效。 waitForQualityGate()方法永远等待。
我在SonarQube中配置的Webhook看起来像这样:
http://<my-jenkins>/jenkins/sonarqube-webhook/
我已经使用配置的Url使用来自sonarqube服务器的curl手动触发webhook(我已经操纵了有效负载并添加了由jenkins中的构建作业创建的相关taskId)。 waitForQualityGate()方法检索手动触发的webhook,一切都按预期工作。
但SonarQube无法向Jenkins发送webhook请求。
我使用SonarQube Api获取更多信息:http://<my-sonar-qube>/sonarqube/api/webhooks/deliveries?ceTaskId=<task-id>
我可以看到,状态是&#39; 403&#39;并且&#39; success = false&#39;。但是通过curl从sonarqube服务器调用完全相同的url会成功。
我可以在哪些Jenkins和SonarQube日志文件中找到有关webhook请求/响应的详细信息?
詹金斯版本:2.89.2 SonarQube版本:6.7
答案 0 :(得分:0)
与
less PATH_TO_YOUR_SONAR_LOGS/access.log | grep /api/ce/submit
您应该会看到来自声纳的触发信号-即便如此,呼叫本身也不会:(