2017-08-08 69 views
1

我工作的一个项目(​​)使用Travis和Sonar进行持续集成和代码分析。Travis,Maven&github发生声纳失败

上周,我注意到,在建立与声纳步骤中失败:

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)并切换到使用倒是fixed this- mvn -q sonar:sonar而不是在.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附加部。

要查看其差异,请将failed build #625(这是来自分叉回购的拉取请求)与successful build #628(这是回购内部的拉取请求)进行比较。

大约一个月前,外拉工作没有问题,例如build #536过去了,已经正常运行Setting environment variables from repository settingsSonarCloud addonsonar-scanner

但是后来的版本,如build #538通过,但只是因为sonar-scanner跳过分析和exited with 0,即使它们无法运行。

虽然我很可能只是禁用外部引入请求声纳,这将是很好,如果我能解决我们的仓库,所以我们得到了内部和外部引入请求都集成测试和代码分析,所以

  • 我的原始修补程序是否正确?
    • 如果是这样,我该如何使它与内部和外部拉请求一起工作?
    • 如果不是,我该如何解决原来的问题?

注意,这个问题已经被How do I get Sonarcloud to run on pull requests from forks with Travis, Maven & github这是集中在潜在的问题,而不是试图解决一些症状取代。

回答

-2

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

+0

感谢Mayank Sharma,但据我所知,每个Travis版本都会创建一个干净/空的码头容器。它肯定是足够干净的,它必须克隆所有的回购作为构建过程的一部分。 –

5

您的PR分析尝试(和失败)使用默认服务器:localhost:9000。

在另一种情况下,你会update settings.xml指定的位置,但由于您使用的特拉维斯,你会传递给它的命令行,而不是上:mvn sonar:sonar -Dsonar.host.url=https://sonarcloud.io

顺便说一句,这是你的正常工作特拉维斯因为建与Travis的SonarQube集成具体是一个Travis-SonarCloud集成,所以服务器自动填写。

+0

谢谢,关于什么URL可能需要的想法?我们以前不需要这个,有些Travis作业没有它就可以正常运行,例如https://travis-ci.org/eclipse/scanning/jobs/262286564可以在没有'-Dsonar.host.url'的情况下正常工作(推测到“mvn sonar:sonar”命令?)。明天早上我们会在我们所有排队的Travis作业运行后更新我的问题(我们未能让Travis将我们的资金用于更高优先级,所以在BST下午3点之后会变得缓慢)。 –

+0

查看我的更新回答@MarkBooth –

+0

再次感谢。当我添加这个命令时,'mvn Sonar:Sonar'错误更改为'Insufficient privileges',这证实这是早期的一个问题'由于安全原因,加密的环境变量已被删除.'错误,请参阅https:// travis- ci.org/eclipse/scanning/builds/262997253我想我需要问一个不同的问题 - “我如何让声呐在叉请求下运行”。我会在这里链接回来。 –