我工作的一個項目()使用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版本都會創建一個乾淨/空的碼頭容器。它肯定是足夠乾淨的,它必須克隆所有的回購作爲構建過程的一部分。 –