-
Notifications
You must be signed in to change notification settings - Fork 165
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SonarQube (SonarCloud) 対応 #674
Conversation
タイトル、本文が途中で登録されてしまったので、修正しました。 |
appveyor 上で実行すると、job の実行時間が 1時間以内という appveyor の制限に引っかかって ↓ 以下はローカルでビルド、解析した結果を SonarCloud 上にアップしたものです。 とりあえず、動かすところまでできたので、 |
いろいろ試行錯誤のコミットがあるので、わかりずらいということであれば また build-sln.bat もこの対応のためのリファクタリングが入っているので |
appveyor/ci#517 |
補足: すべてのビルドで実行するのは想定してなくて、多くても一日一回、長くて一週間に一回くらい |
1d09eb3
to
554bdce
Compare
5f477cb
to
382c4ad
Compare
9ebff6e
to
28421e0
Compare
2d4f8f6
to
4152ed8
Compare
1527f48
to
2f4d43b
Compare
2f4d43b
to
dc978a1
Compare
961f87e
to
e79d580
Compare
対応完了しました。レビューお願いします。 |
ちゃんと動かしてから判断しようと思って動作確認中。 さっきまで curl本家 に繋がらなくてだいぶ焦りました。 |
Git をインストールすると "C:\Program Files\Git\mingw64\bin\curl.exe" にインストールされています。 |
ドキュメントに追加しました。 |
動作確認状況...
|
メモ:SonarScannerの実行要件 https://docs.sonarqube.org/display/SCAN/Install+the+SonarScanner+for+MSBuild
Java実行環境は8推奨、JDKでもJREでもいいが、OpenJDKかOracleJDKを使うように、とのこと。 |
スキャナーが遅い件スキャナーのメモリは、増やしてもあんまり速度変わらんかったです。 カバレッジを取って反映する件カバレッジ収集に関するマニュアル
この辺のPRで出てくる googletest の
ビルド済みの gmain 利用プログラムを動かす分には、 PRの評価とは別に、引き続き調査検討をしていきたいと思っています。 このPRのマージに至るまでの残件問題は、テストのビルドと実行を sonarscaner end の前に持っていく対応を、初期導入から入れるか否かだと思います。 そもそもの話、テストカバレッジを分析対象としたいか否か。 やるための機構があるのだから、ぼくは対象にしたほうがいいと思ってます。 現時点で SonarQube を使い始めるのに十分な環境が整備されたという判断なんですが、 さて、どうしたもんでしょう。 |
別に一つの PR で全部やる必要はないと思います。 PR は可能な限り小さくするのがいいです。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
初期導入として申し分ない整備状況だと思います。
これでココの情報が日々更新されるようになるという理解です。
https://sonarcloud.io/dashboard?id=sakura-editor_sakura
別に一つの PR で全部やる必要はないと思います。
単体テストはあえてこの PR では対象にはしてません。PR は可能な限り小さくするのがいいです。
そろそろ理解の許容限界を超えてきそうなので、いったん運用を始めてみましょう。
これもまぁ、問題がなくても変化していく開拓分野ですし。
マージして以下のように定期実行設定したら、 https://dev.azure.com/sakuraeditor/sakura/_build/results?buildId=306 のようにビルドが走った。 |
スキャナーが遅い件
ローカルでうまくやる方法を見付けたのでとりあえず共有。 @rem to ensure hide variable SONAR_QUBE_TOKEN
@echo off
"%SonarScanner_MSBUILD%" begin ^
/k:"%SONAR_QUBE_PROJECT%" ^
/o:"%SONAR_QUBE_ORG%" ^
/d:sonar.cfamily.build-wrapper-output=%~dp0bw-output ^
/d:sonar.cfamily.threads=%NUMBER_OF_PROCESSORS% ^
/d:sonar.sourceEncoding=UTF-8 ^
/d:sonar.host.url="https://sonarcloud.io" ^
/d:sonar.login="%SONAR_QUBE_TOKEN%" 同時実行スレッド数 Azule Pipelines で うちの環境で スレッド数=4 にして実行させて見たログです。 INFO: Analysis total time: 11:51.584 s
INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------
INFO: Total time: 11:56.458s
INFO: Final Memory: 34M/1375M
INFO: ------------------------------------------------------------------------
The SonarQube Scanner has finished 利用可能なコア数が8とかだったら10分を切りそうな感じに効果てきめんなので、試してみる価値がありそうです。 |
SonarQube (SonarCloud) 対応
#510: SonarQube (SonarCloud) 対応
variables['Build.Reason']
の値をもとに限定しています。SonarQube.md
のドキュメントに手順等記載しています。