5/25 19:00-21:00 Jenkins,Redmine使いこなし勉強会に参加してきました。当初定員いっぱいで補欠登録でしたが、定員増加対応で参加確定しました。当日になるとキャンセルが増えて、空きがあったようです。
開催概要
UST(録画)
Togetter
発表資料
Redmineプラグイン活用入門
プラグインの探し場所、本家のほかr-labさん、r-labは日本語、投票機能ありです。
発表者@kokawaさんによる、プラグインを1つおススメするならWiki Extensions、さらに3つ加えるならCodeReview、Backlogs、TimeTrackerとのこと。
Wiki Extensionsのデモ。このプラグインはもちろん使っていますが、知らない機能がデモで紹介されており収穫でした。外部のWebページの埋め込み、チケットクエリなど。
Redmineの機能に不満があったら、
ということです。REST APIは存在は知っていましたが、活用方法があまりイメージできませんでした。Jenkinsから連携するにもREST APIがよい感じです。
デモでは、
- RESTClientというツールでREST APIを呼び出し、チケット一覧の取得、新しいチケットの登録
- JenkinsからPythonでREST API呼び出しでチケットを作成、PythonはJenkinsのプラグイン。REST APIの呼び出しはPythonが楽。応用例は、毎週定期的に実行するタスクのチケットを自動作成するなど。
プラグイン開発環境
WindowsならRubyInstaller+DevKit、データベースはSQLite3が楽。サーバー起動はWEBrick。
bundlerでのTips
- --withoutにrmagickを指定(ImageMagickがらみはトラぶりやすい)
- --pathでvendor/bundleを指定すると環境が汚れない
Rubyデバッグ環境で、ruby-debug-base19xとruby-debug-ideは、gem install時に--preを付けて開発最新版を入れる
Redmineのプラグインの作り方については、「ソースを見ればわかる」。
Redmine本体もプラグインも構造がきれい・名前がわかりやすいそうです。Ruby on Railsがそうかもしれないとのことです。
Jenkinsプラグイン活用入門
シェル・バッチ・スクリプト言語などをうまく組み合わせるのがJenkins。
プラグインの探し方、本家には400以上あり望みのものを探すのは大変、Jenkins Plugin Hubを使うと絞り込みがあるので探しやすい。
おススメのプラグイン3つ
- TaskScanner
- DiskUsage
- JobConfigHistory
標準機能でスクリプトコンソール上でGroobyのコードを入力し実行できる
プラグインの作り方
エクステンションポイントを継承する
mavenでビルド
やはりソースを見よ
Jenkinsのメーリングリストがあるけどみんなメールを投げないですね。
Jenkins, Redmine座談会から
Jenkinsでビューを作り、Redmine(Wiki Extensions Plugin)で外部URLを取り込むというのが連携の1つ
Redmine活用例の1つ
ミーティングをチケットとしてリマインダーでお知らせ、議事録を載せたらクローズ、という運用がある
Jenkinsにはviolationsプラグインがあって、静的解析ツールの多くに対応してソースコードを検証する機能を載せられる
Redmine 1.4(以前?)→ 2.0のデータベース移行は検証実績なし
感想
RedmineのREST APIをjenkinsから使うという方法で、Jenkinsのcron機能でRedmineのチケットを発行したり、集計したり、というアプローチはプラグイン開発は不要で連携が可能になる点でよいかなぁと思いました。
Redmineは、Tracに比べてチケットの集計と加工が弱いのですが、Redmineで解決しようとするとプラグイン開発が必要になりますし、CSVエクスポートしてExcelで頑張るのも手間な話でした。RESTで別システムに抜き出しそっちで加工、というのは良い手かもしれません。
Rubyの開発環境を丁寧に解説し、またはまりポイントの紹介もあり、とてもよい感じです。勉強会のプレゼンターは大抵その道のエキスパートなので、環境構築は説明するまでもない、という感じですが、ノービスとしてはそこが最初のはまりポイントです。
勉強会形式については、プレゼンテーション型ではどうしても一方向になりがちで、議論を起こすのは難しいかもしれません。RedmineやJenkinsは、参加者もそれなりにネタを持っていることが多いので、うまく持ちネタの紹介合戦になるような場が設けられるといいのですが。