jenkins-capistranoでプラグインインストールのサポートしたよー

ついでにjenkins-capistrano-0.0.6としてリリースしてみました。

リリースノート

  • ビューの管理機能
  • プラグインの管理機能(実験機能)

ビューの作成機能はサクッと出来たもののプラグインについては色々と悩みどころがあってここ2,3日考えていたんですが、まだ安定版にもしてないしとりあえず出しちまえと思って出してみました*1。使い方についてはREADME(view, plugin)を参照してくださいな。

今後について

思ってることをつらつらと。

今回サポートしたプラグインの管理機能はJenkins1.483でサポートされたAPIを利用して作っているんですが、この素晴らしいAPIは全てのconfig.xmlに書かれたpluginのバージョンを元にインストールするという方法がサポートされてます。つまり、この機能を利用すればconfig/jenkins配下に置かれたjob,node,viewを元に自動でプラグインがインストール出来るように作れるってことなんですよね。夢がひろがりんぐ。

ただ、現状だとnodeの追加はjenkins.rbをベースにした形でconfig.xmlではなくFormのサブミッションで作成しているのでサポートしきれません。しかも恐らく*2nodeの追加はconfig.xmlのPOSTでは作れない*3のでちょっと手数を踏んで実装するか、jenkins.model.Jenkins#createNodeを実装して対応するか・・・。でもそれだと過去バージョン使ってる人は使えないなーとか。色々悩み中です。

という訳で実装方法はともかくも今後のロードマップは以下な感じで考えてます。こうしたらいいんじゃない?とかこういうのが欲しいとかあればTwitterなりでアイデアくださいまし。

  • config_nodesタスクのconfig.xml形式をサポート
    • 既存のjsonフォーマットからのmigration込み
  • 指定のJenkinsからjob,node,viewのconfig.xmlをダウンロードする機能
  • 1.483以前のJenkinsのXMLを最新の形式にする機能のサポート(プラグインの自動インストールに必要)
  • プラグインの指定インストールも現状のままのサポート

そんな訳で今後もよろしくお願いします〜。

*1:実装が死ぬほどやっつけなのはご容赦ください

*2:nodeを空で追加してからPOSTなら出来る

*3:更新は可能