我工作的一个项目()使用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:
部分(sonarqube
到sonarcloud
)并切换到使用倒是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 settings
,SonarCloud addon
和sonar-scanner
。
但是后来的版本,如build #538通过,但只是因为sonar-scanner
跳过分析和exited with 0
,即使它们无法运行。
虽然我很可能只是禁用外部引入请求声纳,这将是很好,如果我能解决我们的仓库,所以我们得到了内部和外部引入请求都集成测试和代码分析,所以
- 我的原始修补程序是否正确?
- 如果是这样,我该如何使它与内部和外部拉请求一起工作?
- 如果不是,我该如何解决原来的问题?
注意,这个问题已经被How do I get Sonarcloud to run on pull requests from forks with Travis, Maven & github这是集中在潜在的问题,而不是试图解决一些症状取代。
感谢Mayank Sharma,但据我所知,每个Travis版本都会创建一个干净/空的码头容器。它肯定是足够干净的,它必须克隆所有的回购作为构建过程的一部分。 –