alfresco ci
TRANSCRIPT
Copyright 2012 tachibanakikaku.com. All rights reserved.
Alfrescoで始めるCI- Alfresco勉強会 第7回 -
2012/06/13 @mryoshio
目次
‣ 自己紹介
‣ Alfrescoについて
‣ Web Scriptについて
‣ Jenkinsについて
‣ Mavenを利用したWeb Script開発
‣ Jenkinsのインストールと設定
‣ [デモ] Continuous Integration
自己紹介
‣ 普段何やってるの?→イージフ ( http://aegif.jp/ )でAlfrescoやLiferayのコンサルタント。ソースコード読んだりカスタマイズしたりしています
‣ Alfrescoどれくらい触ってるの?→ 2007/08から約5年
Alfrescoについて
‣ 何?→英Alfresco社が提供するオープンソースソフトウェア。コンテンツ管理、Webコンテンツ管理、コラボレーションなどを低コストでシンプルに行える
‣ 似た機能をもつ製品は?→SharePoint (コラボレーション)、Documentum (コンテンツ管理)あたりが該当
‣ 特徴は?→Community版 (無償)とEnterprise版が存在
→Alfrescoへの移行およびAlfrescoからの移行が簡単
Web Scriptについて
‣ 何?→HTTPメソッド (GET/POST/PUT/DELETE)に応答するURIに紐付けられたサービス
‣ 何ができるの?→ JavaScriptやJavaでロジックを書けるため、Alfresco内部に対する処理 (e.g. コンテンツの検索)はもちろん、Javaでできること (e.g. メール送信、アーカイブ解凍)は大体できる
‣ 参考→ http://www.slideshare.net/mryoshio/alfrescoweb-script
→ (http://wiki.alfresco.com/wiki/Web_Scripts#What_is_a_Web_Script.3F)
Jenkinsについて
What is Jenkins?
‣ 継続的インテグレーションを実現するためのソフトウェアです。たとえば次のことを行えます。
→継続的な、ソフトウェアプロジェクトのビルドとテスト
→外部で起動するジョブの実行監視
‣ インストール・設定が容易などユーザにとって真に便利な特徴を持っています。
※ https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins
特徴
‣ たとえば次の特徴を持っています。→簡易なインストール
→簡易な設定
→差分のサポート
→RSS/Eメール/IMとの連携
→ JUnit/TestNGによるテスト結果のレポート
※ https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins
Who are using Jenkins?
‣ 多くの企業だけでなく、数々のオープンソースプロジェクトで使われています。
→ Apache
→ Bazaar
→ Creative Commons
→ JRuby
※ https://wiki.jenkins-ci.org/pages/viewpage.action?pageId=58001258
Mavenを利用したWeb Script開発
はじめに
‣ 今日のソースコードはここにあります。→ https://github.com/mryoshio/AlfrescoStudy/tree/master/ci_maven
‣ 動作確認をCommunity 4.0dで行いました。
Alfrescoのインストール
‣ 省略→以前の資料をご覧ください。
→ http://www.slideshare.net/mryoshio/alfresco-install
開発環境のセットアップ
‣ 省略→以前の資料をご覧ください。
→ http://www.slideshare.net/mryoshio/alfresco-action
Mavenプロジェクトの作成
‣ Maven2プロジェクトの作成→ archetype: maven-archetype-quickstartでmavenプロジェクトを作成
イメージ
ポイント1: pom.xml
‣ Springプロジェクトのリポジトリを追加
‣ MavenからAnt実行 (copyタスク実行の為)
‣ JUnitへの依存関係を追加
‣ Coberturaプラグインの追加
ポイント2: build.xml
‣ maven-antrun-pluginで実行
‣ copy-resourcesターゲットで次のことを行う→ jarパッケージのコピー
→Web Script設定ファイル群 (e.g. xml, ftl)のコピー
ポイント3: テストクラスの作成
‣ JUnitテストクラスの作成→Web Scriptクラスのメソッドのテストを作成
動作確認
‣ $ mvn cobertura:cobertura→ target/site/cobertura/index.htmlにテスト結果とカバレッジステータスが出力されていることを確認 (下記: index.htmlの表示)
Jenkinsのインストールと設定
インストール
‣ yumで入れました→ https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+RedHat+distributions
✓ YUMリポジトリを追加
✓ RPMのキーのインストール
✓ yumコマンドでインストール
プラグインのインストール
‣ Jenkinsの管理 -> プラグインの管理→Git Plugin
→Maven 2 Plugin Plugin
→ Jenkins Cobertura Plugin
→ javadoc
ジョブの作成
‣ 新規ジョブの作成→ジョブ名: <your job name>
→ “フリースタイル・プロジェクトのビルド”
ジョブの設定
‣ ソースコード管理システム→Git
→ Repositories: https://github.com/mryoshio/AlfrescoStudy.git
‣ ビルド→シェルの実行
✓ cd ci_maven/
→Mavenの呼び出し
✓ゴール: clean javadoc:javadoc cobertura:cobertura
ジョブの設定 (続き)
‣ ビルド後の処理→Coberturaカバレッジ・レポートの集計
✓ Cobertura XMLレポート パターン: ci_maven/target/site/cobertura/coverage.xml
→ JUnitテスト結果の集計
✓テスト結果XML: ci_maven/target/surfire-reports/*.xml
→ Javadocの保存
✓ Javadocディレクトリ: ci_maven/target/site/apidocs
[デモ] Continuous Integration
今回の動作イメージ
1. clone
push 3. notify
2. build / test
Copyright 2012 tachibanakikaku.com. All rights reserved.