2017-08-08 35 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我想我需要問一個不同的問題 - 「我如何讓聲吶在叉請求下運行」。我會在這裏鏈接回來。 –