Sonarcloud 故障与 Travis、Maven 和 github



我参与的一个项目(eclipse/scanning(使用Travis和Sonar进行持续集成和代码分析。

上周,我注意到构建在声纳步骤上失败,包括:

ERROR: Error during SonarQube Scanner execution
org.sonar.squidbridge.api.AnalysisException: Please provide compiled classes of your project with sonar.java.binaries property

经过一些研究,我认为我已经通过更新addons:部分(sonarqubesonarcloud(并切换到使用- mvn -q sonar:sonar而不是- sonar-scanner.travis.yml文件的script:部分来解决此问题。

不过现在,通过集成测试的外部拉取请求(来自分叉(在声纳步骤中由于不同的原因而失败:

$ mvn -q sonar:sonar
...
[ERROR] SonarQube server [http://localhost:9000] can not be reached
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.3.0.603:sonar (default-cli) on project org.eclipse.scanning: Unable to execute SonarQube: Fail to get bootstrap index from server: Failed to connect to localhost/127.0.0.1:9000: Connection refused (Connection refused) -> [Help 1]

这似乎与日志中较早的差异有关:

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#Pull-Requests-and-Security-Restrictions

以及完全缺失的SonarCloud插件部分。

若要查看差异,请将失败的生成 #625(来自分叉存储库的拉取请求(与成功的内部版本 #628(来自存储库内的拉取请求(进行比较。

大约一个月前,外部拉取工作没有问题,例如内部版本 #536 通过,运行Setting environment variables from repository settingsSonarCloud addonsonar-scanner正确。

但是,后续构建(例如内部版本#538(已通过,但这只是因为sonar-scanner跳过了分析和exited with 0,即使它们未能运行。

虽然我可能只是在外部拉取请求上禁用 Sonar,但如果我可以修复我们的存储库,以便我们对内部和外部拉取请求进行集成测试和代码分析,那就太好了,所以

  • 我最初的修复是正确的吗?
    • 如果是这样,如何让它同时处理内部和外部拉取请求?
    • 如果没有,我应该如何解决原始问题?

请注意,这个问题已被如何让Sonarcloud在来自Travis,Maven和github的分支的拉取请求上运行所取代,该请求专注于根本问题,而不是试图修复某些症状。

您的 PR 分析正在尝试(并且失败(使用默认服务器:localhost:9000。

在另一种情况下,您将更新设置.xml以指定位置,但由于您使用的是 Travis,因此您将改为在命令行上传递它:mvn sonar:sonar -Dsonar.host.url=https://sonarcloud.io

顺便说一句,这在您的正常 Travis 构建中有效,因为 Travis 的 SonarQube 集成是专门用于Travis-SonarCloud集成的,因此服务器会自动填充。

您可以尝试删除声纳Qube的directory data/es。 然后重新启动 yoyr SonarQube,SonarQube 将被重新创建所有 ES 索引。

最新更新