JenkinsのCppcheck Pluginを使ってみる

JenkinsのCppcheck Pluginの使い方をまとめます。

Debian 8で実行しています。


1 Cppcheck Pluginとは

C/C++の静的解析ツールの結果をJenkins上に表示するプラグインです。

cppcheckはMakefileを解析してくれるので、MakefileベースのC/C++プロジェクトに使うことができます。

2 cppcheckのインストール

テスト実行環境にcppcheckをインストールします。

Debian 8なのでapt-getでインストールします。

$ sudo apt-get install -y cppcheck

3 Cppcheck Pluginのインストール

Jenkinsのプラグイン制御画面からインストールします。

Jenkinsの管理 -> プラグインの管理 -> 利用可能

https://dl-web.dropbox.com/s/prh083r669wr6ee/0001_CppCheck-Install.png

4 ジョブの設定

4.1 ビルド手順の追加

Cppcheck Pluginはcppcheckの実行には関与しないので、ビルド手順の追加の「シェルの実行」にて、cppcheckを実行します。

$ cppcheck --inconclusive --xml --xml-version=2 . 2> cppcheck.xml

特定のディレクトリを対象から外すには-iオプションを用いると良いでしょう。

ここで作成したxmlファイルをビルド後の処理でJenkinsに読み込ませます

4.2 ビルド後の処理の追加

ビルド後の処理に「Publish Cppcheck results」を追加します。

Cppcheck report XMLsにcppcheckで作成したxmlファイルを指定します。

https://dl-web.dropbox.com/s/lkhky4u914hhthl/0002_CppCheck-Setting.png

5 コンソール出力

memleakというプログラムに対して、コンソールに以下のように出力されました。

[workspace] $ /bin/sh -xe /tmp/hudson6758593101467340318.sh
+ cppcheck --inconclusive --xml --xml-version=2 .
Checking memleak.c...
[Cppcheck] Starting the cppcheck analysis.
[Cppcheck] Processing 1 files with the pattern 'cppcheck.xml'.
[Cppcheck] Not changing build status, since no threshold has been exceeded.
[Cppcheck] Ending the cppcheck analysis.

6 結果

cppcheckの集計結果を見ることができます。

https://dl-web.dropbox.com/s/qx39dait3f04mwq/0003_CppCheck-Trend.png

詳細内容も見ることができます。

https://dl-web.dropbox.com/s/u2jpm75ru2ixicr/0004_CppCheck-Detail.png