Jenkins,Redmine使いこなし勉強会に参加してきた。
Redmineについてのkokawaさんの発表は、スライドが公開されていたりするので、ここで改めて書くことはほとんどないんだけど、メモと感想+αだけでも書いておこうかなと。
全体的な感想。
久しぶりの勉強会参加ってこともあって、いい気分転換になった。会場が、これまで参加してきた勉強会と違って、きちんと長机が整頓されて並んでる会議室ではなく、カフェラウンジ(のような場所)。開放感があってよかった。
JenkinsとRedmineはどちらも業務で使っていて(Redmineはチケット管理+BTSとして)、
くらいの関わりの自分としては、難易度もちょうどよく、得るものも多かった。オープンソースのソフトウェアであれば、ソースコード自体を皆で共有することはできるけど、ツールの運用方法(活用法、使い方)ってのはなかなか共有するのが難しいもので、こういった勉強会をきっかけに、今のツールの運用方法を見直すきっかけになるのは有意義だなと。
参加者の皆さま、おつかれさまでした。
企画者の皆さま、貴重な機会をありがとうございました。
JenkinsとRedmine
Jenkins, Redmineと二つ並べた勉強会だったけど、2つの連携ってトピックで言うと以下の2つのデモがあった。
- JenkinsのスクリプトコンソールからRedmine のREST APIを利用してチケットを登録する。
- Redmineの「Wiki Extensions Plugin」を使って、JenkinsのビューをRedmineに埋め込む。
前者は、Jenkins, Redmineもリモートからのリクエストを受け付けるAPIが豊富に用意されているから、連携でできる可能性も色々ありそう。
話を聞きながら自分が考えたのは、Jenkinsの「Task Scanner Plugin」でTODOやFIXMEをスキャンして、TODOやFIXMEをRedmineのチケットとして自動登録するような仕組み。あとは、テストに失敗したケースをRedmineのチケットとして自動登録するとか。まぁくどくなりそうだけども。
後者は、ある程度Jenkinsを使うようになってくると、ジョブがそれなりの数になってくるのは普通で、そういった時に、ビルドマスターではなくリーダーや管理者、一般開発者といった立場の人が、Redmine側で興味のあるジョブだけを見られるようにして運用していくような使い方。
そういえば、てっきり勉強会の名前からしてJenkinsの「Redmine Plugin」が出てくると思ったけど、出てこなかった…。
Redmineプラグイン開発
今でてる書籍はRedmineの使い方については書かれてるけど、プラグイン開発について詳しく書いてあるものが見つからなかったってこともあって、興味のあったトピック。
Redmineの上の「ヘルプ」を消すためのプラグインを作るのに、書くべきコードがたったの1行だなんて驚き。
ただ、こういうのって、ものすごく簡潔に書ける反面、「こういったことをするプラグインを書きたい」って時にどこに何を書けばいいのかわからなくなることもあると思う。そんな時は、似たようなことをしてるプラグインのソースコードを真似してみるのが一番のようだ。
メンテナンスされてないプラグインは使うべからず。逆に言うと、プラグインを開発するなら、きちんとメンテナンスしていかなければ。Redmineは進化が早い。
名前が上がったプラグイン
- Wiki Extensions Plugin
- Backlogs
- Time Tracker
Jenkinsプラグイン
Jenkins Plugin Hubを見て必要なプラグインを探すとよい。
ちなみに自分は、Jenkinsの管理メニューでインストール可能なプラグインの一覧として表示される名前と説明から、適当に当たりをつけて見つけていた…。
プラグイン開発は、エクステンションポイント(Notifier, ListViewColumn, Builder,...)を継承して作成する。
名前が上がったプラグイン
- TaskScanner Plugin
- DiskUsage Plugin
- JobConfigHistory Plugin
- BuildPipeline Plugin
- Dependency Graph View Plugin
- などなど。
Redmineチケットとソフトウェアかんばん(タスクボード)が二重管理になる問題
これはあるあるだった。最近のプロジェクトでも、段々と面倒になって片方(大体ソフトウェアかんばん)が形骸化しちゃったことがある。
プロジェクタでRedmineの画面を写してかんばんがわりにする、とか、自動でポストイットに印刷する(そんなことどうすりゃうまくできるんだろう…?)みたいな策が挙がっていた。
そういや数年前のプロジェクトでは、朝のスタンドアップミーティングを、メンバーが一つのディスプレイの前に集まって行って、Redmineの画面を見るようにしていた。これもひとつの方法かも(メンバーが多いプロジェクトだと難しいけど)。