GitBook で書いた文書の Redpen の警告を Jenkins Warnings Plugin で可視化する

環境

  • Jenkins 2.8
  • Jenkins Warnings Plug-in 4.56
  • Redpen 1.5.5

モチベーション

最近、技術ドキュメントを GitBook を使って Markdown で書いている。
GitBook は当然 Git リポジトリが使えて、WebHook まで使える。
こうなってくると Jenkins で CI をして、校正結果をグラフにしたくなってくるので、
Jenkins と同じ Java で書かれた Redpen を使ってみている。

Jenkins Warnings Plugin の設定

まずは Jenkins Warnings Plugin にパーサーを追加する。
設定は以下のようにする。


  • 名前 … Redpen
  • リンク名 … Redpen 警告
  • 推移レポート名 … Redpen 警告
  • 正規表現
(.+):(\d+?): ValidationError\[(.+)\], (.+) at line: (.+)
import hudson.plugins.warnings.parser.Warning
import hudson.plugins.analysis.util.model.Priority

String fileName = matcher.group(1)
String lineNumber = matcher.group(2)
String message = matcher.group(4)

return new Warning(fileName, Integer.parseInt(lineNumber), "Dynamic Parser", "Warning", message, Priority.NORMAL);

ジョブの設定

  • 「ソースコード管理」の Git で GitBook のリポジトリ設定をする
  • 「ビルドの実行」で Redpen を実行する (出力は plain)
  • 「ビルド後の処理」で「コンパイラの警告の集計」で先ほど定義した Redpen パーサーを指定する

GitBook 側の設定

  • WebHook で Jenkins のジョブを実行する

実行イメージ

こんな感じ。
当然、警告のリンクをクリックすると該当行をハイライトしてくれたりするし、警告数の推移もグラフにしてくれたりもする。

まとめ

GitBook + Redpen + Jenkins Warnings Pluginin がお手軽で最高!

2016-08-03 追記

Markdown ファイルがサブディレクトリにあるとハイライトがうまく効かないみたい。
Redpen がディレクトリの情報を捨てちゃってるのでどうしようもない感じ。