2017-08-08 10 views
1

私が作業しているプロジェクト(​​)は、継続的な統合とコード解析にTravisとSonarを使用しています。Travis、Maven&githubによるSonarcloudの失敗

先週、私はそれがでソナーの段階で失敗したビルドを気づいた:いくつかの研究の後

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

、私はaddons:セクション(sonarcloudからsonarqube)を更新し、使用に切り替えることでfixed thisをしようと思いました.travis.ymlファイルのscript:セクションの- sonar-scannerではなく、- mvn -q sonar:sonarとなります。

$ 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(これはレポ内のプルリクエスト)を比較してください。前の月頃

、外部引っ張るが正しく実行Setting environment variables from repository settingsSonarCloud addonsonar-scannerを持つ、渡されたインスタンスbuild #536ため、問題なく動作します。

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インデックスを再作成します。

+0

Mayan Sharmaありがとうございます。私が知る限り、トラヴィスビルドごとにクリーン/空のドッカーコンテナが作成されています。ビルドプロセスの一部としてリポジトリのすべてをクローンする必要があることは確かに十分です。 –

5

PR分析では、デフォルトのサーバーlocalhost:9000を使用しようとしています(および失敗しています)。別の状況では

は、あなたが update settings.xml場所を指定するだろうが、あなたがトラビスを使用しているので、あなたは代わりに、コマンドラインにそれを渡します:ので、構築 mvn sonar:sonar -Dsonar.host.url=https://sonarcloud.io

ところで、これは通常のトラビスで働いていますTravisのSonarQube統合は特にTravis-SonarCloud統合であるため、サーバーは自動的に埋められます。

+0

ありがとうございました、そのURLが何である必要がありますか?私たちは以前これを必要としていませんでした。トラビスの仕事の一部は、https://travis-ci.org/eclipse/scanning/jobs/262286564で '-Dsonar.host.url'なしで正常に動作しました(おそらく、 'mvnソナー:ソナー'コマンドに?)。私は明日の朝、私たちの待ち行列に入れられたトラビスの仕事がすべて実行された後に私の質問を更新するつもりです(Travisが私たちのお金を優先して取得することに失敗したので、BSTの午後3時に遅くなります)。 –

+0

最新の回答を見る@MarkBooth –

+0

もう一度ありがとう。これを追加すると、 'mvn Sonar:Sonar'エラーが'不十分な特権 'に変わり、セキュリティ上の理由から'暗号化された環境変数が削除されました 'というエラーが発生していることが確認できます。https:// travis- ci.org/eclipse/scanning/builds/262997253私は別の質問をする必要があると思う - 「どうやってソナーにフォークからのプル要求を実行させるのか」私はここでリンクします。 –

関連する問題