長生村本郷Engineers'Blog

千葉県長生村本郷育ちのエンジニアが書いているブログ

Jenkins + SonarQube で PHPコードメトリクス計測!

前回

Jenkinsとは別のサーバ上に
SonarQube をインストールし
アクセスできるまでをまとめました。

kenzo0107.hatenablog.com

今回は Jenkins からソースを解析し
SonarQubeでのメトリクス情報を表示までの実行方法をまとめます。

言語は どれでも良いですが、 今回は PHP とします。

Overview

以下概要になります。

f:id:kenzo0107:20160521003213p:plain

SonarQube側事前準備

プロジェクトを作成しプロジェクトキーを発行します。

1. ログインページへアクセス

http://:9000/sessions/new

f:id:kenzo0107:20160520233944p:plain

デフォルトでは以下 admin:admin アカウントでログイン

Item Value
ID admin
PW admin

2. プロジェクト作成

  • ヘッダーメニュー Administration クリックし Administration ページへ遷移
  • Projects > Management クリック

f:id:kenzo0107:20160520234632p:plain

  • Create ボタンクリック

f:id:kenzo0107:20160520235020p:plain

  • Name, Key 入力し

f:id:kenzo0107:20160521000020p:plain

  • プロジェクトが追加されたことがわかります。

f:id:kenzo0107:20160521001309p:plain

3. PHP Plugin インストー

  • Administration ページ System > Update Center クリック

f:id:kenzo0107:20160521002115p:plain

  • Available 選択 → 検索窓で「PHP」と入力 → 表示された PHP Plugin でInstallクリック

f:id:kenzo0107:20160521002430p:plain

  • Restart でSonarQubeに PHP Plugin インストー

f:id:kenzo0107:20160521002605p:plain

  • Installed タブで PHP Plugin がインストールされていることを確認

f:id:kenzo0107:20160521002918p:plain

4. authentication token 発行

  • Security > User クリック

f:id:kenzo0107:20160521005252p:plain

  • TOKENS クリックしポップアップ表示

f:id:kenzo0107:20160521005424p:plain

f:id:kenzo0107:20160521005757p:plain

  • 任意の文字列を入力しcreate

f:id:kenzo0107:20160521005946p:plain

  • tokenコピー
    Jenkins側の設定時に利用します。

f:id:kenzo0107:20160521010037p:plain

以上でSonarQube側の事前準備は終了です。

Jenkins 側準備

1. SonarQube Plugin インストー

Jenkinsの管理 > Pluginの管理
にて SonarQube Plugin インストー

f:id:kenzo0107:20160521003400p:plain

2. SonarQube Scanner インストー

以下オフィシャルダウンロードページからリンク取得
Analyzing with SonarQube Scanner - Scanners - Doc SonarQube

# cd /var/lib/jenkins
# wget https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-2.6.1.zip
# unzip sonar-scanner-2.6.1.zip
# ln -s sonar-scanner-2.6.1 sonar-scanner

3. Jenkinsシステム設定

  • Jenkinsの管理 > システムの設定 へアクセス

  • JenkinsQube servers に必要項目入力

f:id:kenzo0107:20160521004429p:plain

  • SonarQube Scanner に先ほどインストールした sonar-scannerパスを設定

f:id:kenzo0107:20160521004625p:plain

上記入力後保存

4. ジョブ新規作成

「sonarqubeTest」という名前のジョブを新規作成します。

f:id:kenzo0107:20160521010200p:plain

  • SonarScanner 実行設定

f:id:kenzo0107:20160521010349p:plain

以上でJenkins側の設定完了です。

SonarQube 反映確認

f:id:kenzo0107:20160521010726p:plain

ちなみにこちら EC-CUBE 1.1のプロジェクトでした。

EC-CUBEのコード重複率が多く
無駄が如何に多いかがわかります。

以上です。