メールでJenkinsにコマンドを送りたい(1)

JenkinsでJavaのソース等をビルドする以外にもいろいろなことを行っていると、ふとリモートからも
Jenkinsをコントロールできたら便利かもと思うことがあります。
ブラウザで直接Jenkinsを操作できないときに、携帯メールとかから命令を実行できたら便利
なんじゃないかと思ったのが妄想の始まり。。。


メールでJenkinsにコマンドを送りたい(2) 〜Builder編〜
メールでJenkinsにコマンドを送りたい(3) 〜Publisher編〜
メールでJenkinsにコマンドを送りたい(4) 〜Trigger編〜
メールでJenkinsにコマンドを送りたい(5) 〜Groovy対応〜


JenkinsのBuilderを拡張し、定期的に設定されたメールアドレスをチェックして、
命令を含んだメールを見つけたら、取得し、命令を実行する。
この考えで手間をそんなにかけずに面白いものが作れそうだなと思いました。
念のため同じようなプラグインが既にあるんじゃないかと思い、ちょこっと調べましたが
すぐには見当たらなかったのと、もしあったとしても勉強になるからまあいいかということで作成してみることに。


考えをまとめているうちに、やりたいことが膨れてきたので、ざっくり書いてみることに。

  1. メールの件名(subject)にコマンドを書いて専用のアドレス宛てに送信することでJenkinsに実行させたい
    • コマンドの形式はCLIを流用すれば楽できそう
    • Builderの拡張としてプラグインを作成して、一定間隔で実行させればいいかな
  2. 成功・失敗を問わず、実行結果をコマンド送信元のメールアドレス宛てに送信したい
    • 標準のメール通知だと成功時にメールが飛ばない
    • Publisherを拡張したらできそう?
  3. できればCLIコマンドのうちgroovyだけ特別扱いして、実行できるようにしたい
    • CLIコマンドの中で対応から外すのは、対話型系のコマンドかな
    • CLIのgroovyに渡すシェルスクリプトは、メールの本文に書いたらどうか


とりあえずやりたいのは1.なのですが、何せメールで実行させるので結果がすぐに帰ってこないと
不便だと思いますので、2.も結局必須な気がします。
3.はメールの本文を入力スクリプトとして扱えば結構簡単に実行できるのではという思いつきです。


明日以降、実装チャレンジしてみたいと思います。