StepCounterプラグインのPipeline対応
Jenkins2には新機能「Pipeline」が搭載されています。
CircleCIやConcourseCI,Spinnakerのようにスクリプトベースでビルドやデプロイのジョブを記述することができる、というものです。
この機能、プラグイン側もそこそこ対応しないといけなかったので対応してみました。
書き方
Pipelineのスクリプトの基本的な書き方はデフォルトで「Pipeline Syntax」というヘルプ機能があるのでそれを使えば簡単に書けちゃうんですが・・
それだけだと寂しいのでStep Counter Plugin - Jenkins - Jenkins Wikiに記載したサンプルベースで簡単に解説しようかなと思います。
カウント処理のみ
もともとUIで設定していた「カウントするファイルの設定」を、ファイルの種類を「key」に、解析対象を「filePattern」、除外対象を「filePatternExclude」、エンコーディングを「encoding」に指定して、配列形式で記載します。
stepcounter settings: [[encoding: 'UTF-8', filePattern: 'src/main/**/*.java', filePatternExclude: '', key: 'Java'], [encoding: 'UTF-8', filePattern: 'src/test/**/*.java', filePatternExclude: 'src/test/java/sample/*.java', key: 'TestCode']]
この処理だけをするスクリプトはこんな感じ。
node { stage 'StepCount' stepcounter settings: [[encoding: 'UTF-8', filePattern: 'src/main/**/*.java', filePatternExclude: '', key: 'Java'], [encoding: 'UTF-8', filePattern: 'src/test/**/*.java', filePatternExclude: 'src/test/java/sample/*.java', key: 'TestCode']] }
Excel形式で出力
去年こっそり追加してた機能です。エンタープライズな仕事しているのでExcel必須。残念ながらxls形式で、xlsxには対応していません・・
カウント処理のみのスクリプトにファイル名とフォーマットを追加すればOKです。
ファイルパスとファイル名を「outputFile」に、フォーマットを「outputFormat」に指定します。
stepcounter outputFile: 'sample.xls', outputFormat: 'excel', settings: [[encoding: 'UTF-8', filePattern: 'src/main/**/*.java', filePatternExclude: '', key: 'Java'], [encoding: 'UTF-8', filePattern: 'src/test/**/*.java', filePatternExclude: 'src/test/java/sample/*.java', key: 'TestCode']]
これでワークスペース配下にsample.xlsファイルが出力されます。
StepCounterプラグインの紹介
このエントリは Jenkins Advent Calendar jp 2011 : ATND の最終日、25日目の分です。
今日は、私が作ったStepCounterプラグインを紹介します。
はじめに
このプラグインは、その名の通り、ステップ数を集計するプラグインです。
世の中にはステップ数を集計するツールはたくさんありますが、このプラグインの特徴は二点あります。
要するに、SVNとJenkinsがあれば使えて、Javaソース、Groovyソース、プロパティファイル等、種類ごとにステップ数が集計できる、というものです。
ちなみに、ステップ数の計測処理はhttp://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi?page=StepCounter:Project AmaterasのStepCounterを使わせていただいています。そのため、対応しているファイル形式もStepCounterと同じです。
使ってみる
では、Jenkins coreのソースをステップ数を集計してみます。
2. ソースを取得するGitやSVNの設定を行います。
3. StepCounterを有効にして、集計したいソース種別ごとに設定を行います。ソースの指定はAntと同じ形式で行うことができます。
4. ジョブの設定を保存し、実行します。実行ログは以下のように出力されます。
5. 集計結果はプロジェクトのトップに推移グラフとして表示されます。
6. また、詳細を「ステップ数」というリンクで見ることができます。
ここではこのジョブを定期的に動かしていないため、推移が分かりませんが、毎日、あるいは毎週定期的にジョブを起動すれば、どのソースがどの程度増減したかが分かるようになります。