Jenkins + SonarQube で PHPコードメトリクス計測!
前回
Jenkins とは別のサーバ上に
SonarQube をインストールし
アクセスできるまでをまとめました。
![](http://i.imgur.com/etIqshd.png)
今回は Jenkins からソースを解析し
SonarQube でのメトリクス情報を表示までの実行方法をまとめます。
言語は どれでも良いですが、 今回は PHP とします。
Overview
以下概要になります。
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160521/20160521003213.png)
SonarQube 側事前準備
プロジェクトを作成しプロジェクトキーを発行します。
1. ログインページへアクセス
http://
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160520/20160520233944.png)
デフォルトでは以下 admin:admin アカウントでログイン
Item | Value |
---|---|
ID | admin |
PW | admin |
2. プロジェクト作成
- ヘッダーメニュー Administration クリックし Administration ページへ遷移
- Projects > Management クリック
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160520/20160520234632.png)
- Create ボタンクリック
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160520/20160520235020.png)
- Name, Key 入力し
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160521/20160521000020.png)
- プロジェクトが追加されたことがわかります。
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160521/20160521001309.png)
3. PHP Plugin インストール
- Administration ページ System > Update Center クリック
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160521/20160521002115.png)
- Available 選択 → 検索窓で「PHP」と入力 → 表示された PHP Plugin で Install クリック
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160521/20160521002430.png)
- Restart で SonarQube に PHP Plugin インストール
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160521/20160521002605.png)
- Installed タブで PHP Plugin がインストールされていることを確認
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160521/20160521002918.png)
4. authentication token 発行
- Security > User クリック
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160521/20160521005252.png)
- TOKENS クリックしポップアップ表示
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160521/20160521005424.png)
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160521/20160521005757.png)
- 任意の文字列を入力し create
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160521/20160521005946.png)
- token コピー
Jenkins 側の設定時に利用します。
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160521/20160521010037.png)
以上で SonarQube 側の事前準備は終了です。
Jenkins 側準備
1. SonarQube Plugin インストール
Jenkins の管理 > Plugin の管理
にて SonarQube Plugin インストール
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160521/20160521003400.png)
2. SonarQube Scanner インストール
以下オフィシャルダウンロードページからリンク取得
Analyzing+with+SonarQube+Scanner
1 | $ cd /var/lib/jenkins |
3. Jenkins システム設定
Jenkins の管理 > システムの設定 へアクセス
JenkinsQube servers に必要項目入力
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160521/20160521004429.png)
- SonarQube Scanner に先ほどインストールした sonar-scanner パスを設定
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160521/20160521004625.png)
上記入力後保存
4. ジョブ新規作成
「sonarqubeTest」という名前のジョブを新規作成します。
- git リポジトリより PHP プロジェクト取得設定
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160521/20160521010200.png)
- SonarScanner 実行設定
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160521/20160521010349.png)
以上で Jenkins 側の設定完了です。
SonarQube 反映確認
![](https://cdn-ak.f.st-hatena.com/images/fotolife/k/kenzo0107/20160521/20160521010726.png)
ちなみにこちら EC-CUBE 1.1 のプロジェクトでした。
EC-CUBE のコード重複率が多く
無駄が如何に多いかがわかります。
以上です。
Jenkins + SonarQube で PHPコードメトリクス計測!
https://kenzo0107.github.io/2016/05/20/2016-05-21-jenkins-sonarqube-php-code-metrics/