Jenkinsでログの一部分からメールを作成する方法

Jenkinsのログの一部分からメールを送信する方法がよくわからなかったので、メモ。

最初の目標として、実行された一時ファイルの名前を抽出し、メール送信する。

まずはEmail-ext pluginをインストール。
BUILD_LOG_REGEXを利用する。


BUILD_LOG_REGEXはログを正規表現を利用して抽出できる関数。
${BUILD_LOG_REGEX, regex, linesBefore, linesAfter, maxMatches, showTruncatedLines, substText, escapeHtml, matchedLineHtmlStyle}

使うのは
regex: 正規表現
showTruncatedLines: truncateされた列を表示するかどうか。デフォルトOFFにしてほしい・・・
substText: regexで抽出した文字列だけを表示したいときに利用する。

以下をメールのコンテンツに書く。

以下のテンプファイルを実行しました。

${BUILD_LOG_REGEX, regex=".*/tmp/\(.*\).sh.*", showTruncatedLines=false, substText="$1"}

結果

以下のテンプファイルを実行しました。

hudson3558248437816319717
hudson3558248437816319717

注意点:substTextを使うときはダブルクオテーションで括ること。


=== 2013/05/15 追記 ===

addNewLineなんてオプションができてた。(見落としてた?バージョンアップしたから?よくわからん)

addNewline - If true, adds a newline after subsText.
Defaults to true.

上記の例のように、複数マッチする時は必要ですが、確実に1つマッチするだけということであれば、addNewline=falseを忘れずに。