SonarQube はじめの一歩

SonarQubeとは

https://www.sonarqube.org/

SonarQubeはプログラムコードの静的解析ツールです。20以上のプログラミング言語の問題点を指摘してくれる便利なツールです。テストの自動化ではなくてコードレビューを自動化するためのツールでしょうか? コード品質の向上に役立ちそうなので、さらっと使ってみました。

検証環境

  • MacOS Catalina 10.15.6
  • Docker 19.03.8
  • Docker Compose 1.26.2

MacではDocker Desktop for Macをインストールするだけですが、Windowsの場合はLinux仮想マシンを用意して、そこにDockerとDocker Composeをインストールしてください(手順は割愛します)。

SonarQubeサーバを用意する

まずSonarQubeサーバを用意します。
といってもDcokerイメージが用意されているので、docker-compose.ymlを用意して、

docker-compose.yml

ビルドするだけでサーバは用意できます。

念のためコンテナの起動を確認します。

コンテナが起動したらブラウザでアクセスします。初回アクセスではサーバで何かいろいろ準備しているようで、けっこう待たされます。

http://localhost:9000/

Linuxの場合

SonarQubeサーバをLinuxに構築する場合、メモリマップ数などを変更する必要があります。詳しくは下記のリンク先を参照してください。

Linux
If you're running on Linux, you must ensure that:

vm.max_map_count is greater than or equal to 524288
fs.file-max is greater than or equal to 131072
the user running SonarQube can open at least 131072 file descriptors
the user running SonarQube can open at least 8192 threads

https://docs.sonarqube.org/latest/requirements/requirements/

ユーザを作成する

初期状態ではadmin/adminでログインできるので、とりあえずログインします。

adminユーザをそのまま使うこともできますが、ここでは新規ユーザを作成しましょう。
AdministrationSecurityUsersCreate Userでユーザを追加します。

adminはログアウトして、追加したユーザでログインし直します。

プロジェクトを作成する

次にプロジェクトを作成します。
ProjectsCreate new projectで新しいプロジェクトを作成します。

画面の指示通りに進めればいいだけですが、ざっくり説明すると、

  1. プロジェクト名を決める
  2. トークンを生成する
  3. SonarScanner(zip)をダウンロードして展開する
  4. SonarScannerのbinフォルダにパスを通す
  5. ターミナルを起動して、解析したいプログラム(プロジェクト)のフォルダへ移動する
  6. ターミナルからSonarScannerを起動する

SonarScannerはSonarQubeのクライアントです。
SonarScannerがローカルPC上のソースコードをSonarQubeサーバへ送って、SonarQubeがコードを解析してくれる、という流れでしょう、たぶん。

SonarScannerの起動コマンドもブラウザに表示されているので、コピペしてターミナルで実行します。

解析する

SonarScannerを起動してちょっと待つと、解析結果がブラウザに反映されます。
コードに問題がある場合は、下のようにIssuesに表示されます。詳細を確認してIssueを解消しましょう。

おわりに

SonarQubeでコードを解析できるところまでを駆け足で試してみました。

といってもちょっと動かしてみただけなので、どんな解析をしてくれるのかはまだぜんぜんわかってないです。設定なんかもきちんと調べてコード品質の向上に役立てていきたいものです。

ではまた。