私が作業しているプロジェクト()は、継続的な統合とコード解析に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 settings
、SonarCloud addon
とsonar-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に取って代わられました。
Mayan Sharmaありがとうございます。私が知る限り、トラヴィスビルドごとにクリーン/空のドッカーコンテナが作成されています。ビルドプロセスの一部としてリポジトリのすべてをクローンする必要があることは確かに十分です。 –