SonarQubeの使い方含めて備忘録。
SonarQubeとは
コードの静的分析で自動レビューを行い、コード品質を継続的に検査するためのオープンソース
以下のような機能がある
- バグが埋め込まれているコード(Bugs)
- 重複コードの検出(Duplications)
- 脆弱性のあるコードの検出(Vulnerabilities)
- バグを誘発しそうなコードの検出(Code Smells)
- カバレッジ計測(Coverage)
また、QualityGate(自分で設定できる品質が良い状態かの閾値)でコード品質の判定をしてくれる。
下はSonarQube上で確認できる静的分析結果の例
構築する
docker run -p 9000:9000 --name sonarqube -d --restart always -it sonarqube:lts
docker psコマンドでStatus upになっていればOK
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21be52e54145 sonarqube:lts "./bin/run.sh" 48 seconds ago Up 46 days 0.0.0.0:9000->9000/tcp sonarqube
http://localhost:9000でアクセスできればOK
初期パスワードはadmin/admin
ログインするとダッシュボード画面が表示される。
ここではまだプロジェクトが何も無いので空の状態。
QualityGatesの設定
ヘッダーのQuality Gatesを押すとQuality Gatesの設定画面が表示される
デフォルトでは「SonarWay」というQualityGatesが設定されており、内容は以下。
「〜on New Code」と書いてある通り、新しく追加されたコードに対してQualityGateの判定を行うようになっている。
もし常に全てのコードに対してQualityGateの判定を行いたい場合は新たなQualityGateをCreateする必要がある。
projectを登録する
SonarQube上でprojectを作成する方法もあるが、projectがすでにある場合はそのままSonarQubeに投げる形のほうが楽。
SonarQubeとprojectの連携方法(Spring Boot,gradle)