(こうやって普段使っているものを書いていくと、だんだんバレてしまうのではないか、と思ったけどどうせ名前もバレてるんだからいいか)
Jenkinsは非常に役立っています。
Jenkinsを使うと、自動でコンパイルを行ってくれます。
Jenkins
「コンパイル?そんなのローカルPCのコマンドプロンプトやEclipse上で行えばいいじゃん」
と思っている人がいるかもしれません。
しかし大人数で開発を行っている場合、個人の設定で左右されてしまうローカルPC上でコンパイルすることはあまり良くありません。
例えば、みんな同じVersionのJDKを使っているという保証はありますか?
ライブラリのパスをローカルPC上の絶対パスで指定していませんか?
こういうことを無くすために、現在、私の部署ではJenkins&mavenを利用してコンパイルしています。
ただ、Jenkins&mavenでコンパイルすると、大量のログが出てきます。
このログをただ単にメールへ載せると、メール本文が大変なことに…!
ということで、今回はJenkinsでコンパイルエラーによるJob失敗が起こった時に、ERRORのみ記載したメールを飛ばそうというお話です。
使うのは、以下の3つ
・Jenkins
・Maven
・Email-ext plugin
上2つは、Jenkins&Mavenでコンパイルすると言っているのだから、もちろん必要です。
そして今回ポイントとなるのはEmail-ext pluginです。
Email-ext plugin
これを使うと、メールの内容に色々な情報を載せることが出来るほか、
Jobの成功・失敗によって送り先を変えることができます!
(例えば成功した場合はソース管理者、失敗した場合にはソースのコミット者に連絡するなど)
メール本文も色々とカスタマイズできます。
詳しくは下のサイトへ
Jenkinsから送信されるメールをカスタマイズする(Ryuzee.com)
そして、文字抽出の方法については以下のサイトに書かれています。
Jenkinsでログの一部分からメールを作成する方法(しらじ)
これらの情報を用いて、MavenのERRORの部分のみメール本文に記載しようと思います。
まず、Jenkins&Mavenでコンパイルしようとして失敗すると、こんなエラー文が出てきます。
この場合、赤くなっている部分がエラー部分です。
この部分の特徴として、必ず行頭が[ERROR]で始まります。
そこで、Email-ext pluginを用いて、[ERROR]だけを抜き出すようにしましょう!
やり方としては、拡張Email本文の部分に
${BUILD_LOG_REGEX,regex="^\\[ERROR\\].*",linesBefore=0, linesAfter=0, showTruncatedLines=false}
と記載するだけです。
このBUILD_LOG_REGEXのregex部に正規表現を表記することで、正規表現に当てはまる行だけを抜き出せます。
なお、ここでの注意点はエスケープ記号\を2つ入れること!
他の詳しい設定はJenkinsから送信されるメールをカスタマイズする(Ryuzee.com)を見て下さい。
さて、これでメールには[ERROR]の行のみが載るようになりました!
そして、メールが来ても「どこがエラーになっているのか分からないよぉ…」と困ってしまう人を作り出すことを防ぐことができました!
めでたし、めでたし…。
0 件のコメント:
コメントを投稿