ソースコードの品質向上のため静的コード解析ツールである MetricFu , RuboCop , Brakeman のドキュメント出力を Jenkins で自動化する方法をまとめました。
これらを導入することにより人力コードレビューの負担を少しでも減らすことができるかなと思います。
MetricFu
コードメトリクスを測定。 ソースコードの重複チェック、処理の複雑度などを出力してくれる。
Reek, Flay, Chrn, Stats, Flog, Cane, Roodi, Saikuro, Rails Best Practices, Hotspots
RuboCop
静的コード解析ツール。
Ruby Style Guide に沿っているかチェックしてくれる。
Brakeman
presidentbeef/brakeman · GitHub
セキュリティチェック。
脆弱性の含まれたライブラリを使っていたり、セキュリティ的にまずい実装をしていると警告してくれる。
MetricFu
gem のインストール
# Gemfile gem 'metric_fu'
Jenkins の設定
プラグインのインストール
[Jenkinsの管理] > [プラグインの管理] から HTML Publisher Plugin プラグインをインストールする。
HTML Publisher Plugin プラグイン の設定
[ビルド後の処理の追加] > [Publish HTML reports] を選択し以下のように入力する。
HTML directory to archive: tmp/metric_fu/output Index page[s]: index.html Report title: metric-fu
シェルスクリプトの設定
bundle exec metric_fu
RuboCop
gem のインストール
# Gemfile gem 'rubocop', require: false gem 'rubocop-checkstyle_formatter', require: false
Jenkins の設定
プラグインのインストール
[Jenkinsの管理] > [プラグインの管理] から Violations プラグインをインストールする
Violations プラグインの設定
[ビルド後の処理の追加] > [Report Violations] を選択し以下のように入力する。
checkstyle: tmp/checkstyle.xml
シェルスクリプトの設定
bundle exec rubocop --require rubocop/formatter/checkstyle_formatter --format RuboCop::Formatter::CheckstyleFormatter --no-color --rails --out tmp/checkstyle.xml
Brakeman
gem のインストール
# Gemfile gem 'brakeman'
Jenkins の設定
プラグインのインストール
[Jenkinsの管理] > [プラグインの管理] から Brakeman Plugin プラグインをインストールする。
Brakeman Plugin プラグインの設定
[ビルド後の処理の追加] > [Publish Brakeman warnings] を選択し以下のように入力する。
Brakeman Output File: tmp/brakeman-output.tabs
シェルスクリプトの設定
bundle exec brakeman -o tmp/brakeman-output.tabs
気に入ったものがあれば是非導入してみてください。