社内CIハンズオンセミナーの参加報告&まとめ

jenkinsを利用した経験はあるのですが、構築、運用した経験が無かったので

社内でCI(jenkins)のハンズオンセミナーを受けてきました。

f:id:tenten0213:20120305014840p:plain

 内容は、

  1. 継続的インテグレーション(CI)とは
  2. jenkinsとは
  3. jenkinsのインストールと設定(設定済のPCがあったので割愛)
  4. JOBの作成
  5. JOBのモニタリング
  6. jenkinsの拡張、プラグインの活用
  7. 構成管理ツールとの連携
  8. jenkinsベストプラクティス

って感じでした。

 

1.継続的インテグレーション(CI)とは

継続的インテグレーションとはなにか、行うために必要なもの、"こんな感じ"という概念図を見せての説明。

 

2.jenkinsとは

jenkinsとはどんなツールなのかというお話。

CIツールは色々あると思いますが、今はjenkinsですかね。

他のCIツールを利用して比較したことが無いので何とも言えないのですが、

コンセプトとしてある"Easy to use"は間違い無いと思います。

GUIで色々な設定ができますし、JOBの作成もお手軽。

プラグインもかなり豊富で、”こんなことやりたい”と思ったらプラグインを調べたら大体ありそうな感じです。

 

3. jenkinsのインストールと設定(設定済のPCがあったので割愛)

割愛。

 

4.JOBの作成

5.JOBのモニタリング

6.jenkinsの拡張、プラグインの活用

 JOBの作成についての説明を一通りした後、実際にハンズオンでJOBを作成しました。

まず、フリースタイルJOBの作成。

JavaのサンプルアプリケーションをSVNから取得、ビルドしwarを作成しました。

次にmavenで同様のJOB作成。

その後は応用で、テスト結果レポートの生成や静的検査結果レポートの生成、コードカバレッジレポートの生成を行いました。

静的検査はVaiolation pluginを利用。

レポート作成はメモリを多く消費するので、JVMオプションを指定すること。

-DMAVEN_OPTS=-Xmx1024m

 テストをスキップしたい場合は、以下を指定。

-Dmaven.test.skip=true

 

 こんな感じ↓のレポートもプラグインを入れれば簡単に作れるし、便利ですね。

f:id:tenten0213:20120305014843p:plain

 

Deploy Pluginを利用してアプリケーションサーバーへのデプロイも行いました。

どのプラクティスも実PJで利用している/利用したいものばかりで参考になりました。

 

7. 構成管理ツールとの連携

 ここはあまり時間がなかったので軽くしか話されなかったですが、今のPJはSVNRedmineを利用しているので連携を取る様な設定を取り入れたいですね。

 

8.jenkinsベストプラクティス

講師の方が、実際にPJで導入しているプラクティスの紹介でした。

DBAプラグインを利用したER図からDDL作成、実行。static変数検出プラグインの紹介、コードの自動生成など興味深いプラクティスがいっぱいでした。

 

まとめ

CIってナニ?って人も、半日で概要の理解と、jenkinsさんと顔見知りになれる素敵なセミナーでした。

意外とCOBOLERな方々も来ていたのが興味深かったです。

どの言語を使っていても、自動化は取り入れたいプラクティスですよね。

 

自分自身は、今回のセミナーを通じてJOBの作成方法であったり便利な使い方を学べたので、PJにどんどん取り入れたいと思います。

 

特に、デプロイの自動化と受け入れテスト(selenium使いたい)の自動化がPJのキモになりそうなので注力していきます。

ちょっと特殊なアーキテクチャなので、デプロイの自動化には苦労しそうですが…

 

いつも思うのですが、ツールはインストール、導入して終わりではなく、効果のある運用を続けなければいけないと思います。

jenkinsを利用して日々の作業の自動化をするのはもちろんですが、それによって、頻繁にテストやデプロイが行われる、行いやすい雰囲気を作っていくことが重要です。

その想いや、意図を伝えるのも大事ですね。(色々自戒の意味を込めて)

 

また、せっかく優れたレポート機能があるので、品質や作業不可の見える化も工夫していこうと思います。

マネージャーに「とりあえずビルドの自動化が出来るツールなんでしょ?」なんて言われないようにしましょう!

 

 こんなつぶやき↓をしましたが、早くjenkinsさんと顔見知りから脱却して、色々なことをやってもらえるようになりたいです。