alfresco ci

27
Copyright 2012 tachibanakikaku.com. All rights reserved. Alfrescoで始めるCI - Alfresco勉強会 第7回 - 2012/06/13 @mryoshio

Upload: ashitaba-yoshioka

Post on 29-Jan-2018

1.811 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Alfresco CI

Copyright 2012 tachibanakikaku.com. All rights reserved.

Alfrescoで始めるCI- Alfresco勉強会 第7回 -

2012/06/13 @mryoshio

Page 2: Alfresco CI

目次

‣ 自己紹介

‣ Alfrescoについて

‣ Web Scriptについて

‣ Jenkinsについて

‣ Mavenを利用したWeb Script開発

‣ Jenkinsのインストールと設定

‣ [デモ] Continuous Integration

Page 3: Alfresco CI

自己紹介

‣ 普段何やってるの?→イージフ ( http://aegif.jp/ )でAlfrescoやLiferayのコンサルタント。ソースコード読んだりカスタマイズしたりしています

‣ Alfrescoどれくらい触ってるの?→ 2007/08から約5年

Page 4: Alfresco CI

Alfrescoについて

‣ 何?→英Alfresco社が提供するオープンソースソフトウェア。コンテンツ管理、Webコンテンツ管理、コラボレーションなどを低コストでシンプルに行える

‣ 似た機能をもつ製品は?→SharePoint (コラボレーション)、Documentum (コンテンツ管理)あたりが該当

‣ 特徴は?→Community版 (無償)とEnterprise版が存在

→Alfrescoへの移行およびAlfrescoからの移行が簡単

Page 5: Alfresco CI

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)

Page 6: Alfresco CI

Jenkinsについて

Page 7: Alfresco CI

What is Jenkins?

‣ 継続的インテグレーションを実現するためのソフトウェアです。たとえば次のことを行えます。

→継続的な、ソフトウェアプロジェクトのビルドとテスト

→外部で起動するジョブの実行監視

‣ インストール・設定が容易などユーザにとって真に便利な特徴を持っています。

※ https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins

Page 8: Alfresco CI

特徴

‣ たとえば次の特徴を持っています。→簡易なインストール

→簡易な設定

→差分のサポート

→RSS/Eメール/IMとの連携

→ JUnit/TestNGによるテスト結果のレポート

※ https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins

Page 9: Alfresco CI

Who are using Jenkins?

‣ 多くの企業だけでなく、数々のオープンソースプロジェクトで使われています。

→ Apache

→ Bazaar

→ Creative Commons

→ JRuby

※ https://wiki.jenkins-ci.org/pages/viewpage.action?pageId=58001258

Page 10: Alfresco CI

Mavenを利用したWeb Script開発

Page 11: Alfresco CI

はじめに

‣ 今日のソースコードはここにあります。→ https://github.com/mryoshio/AlfrescoStudy/tree/master/ci_maven

‣ 動作確認をCommunity 4.0dで行いました。

Page 12: Alfresco CI

Alfrescoのインストール

‣ 省略→以前の資料をご覧ください。

→ http://www.slideshare.net/mryoshio/alfresco-install

Page 13: Alfresco CI

開発環境のセットアップ

‣ 省略→以前の資料をご覧ください。

→ http://www.slideshare.net/mryoshio/alfresco-action

Page 14: Alfresco CI

Mavenプロジェクトの作成

‣ Maven2プロジェクトの作成→ archetype: maven-archetype-quickstartでmavenプロジェクトを作成

イメージ

Page 15: Alfresco CI

ポイント1: pom.xml

‣ Springプロジェクトのリポジトリを追加

‣ MavenからAnt実行 (copyタスク実行の為)

‣ JUnitへの依存関係を追加

‣ Coberturaプラグインの追加

Page 16: Alfresco CI

ポイント2: build.xml

‣ maven-antrun-pluginで実行

‣ copy-resourcesターゲットで次のことを行う→ jarパッケージのコピー

→Web Script設定ファイル群 (e.g. xml, ftl)のコピー

Page 17: Alfresco CI

ポイント3: テストクラスの作成

‣ JUnitテストクラスの作成→Web Scriptクラスのメソッドのテストを作成

Page 18: Alfresco CI

動作確認

‣ $ mvn cobertura:cobertura→ target/site/cobertura/index.htmlにテスト結果とカバレッジステータスが出力されていることを確認 (下記: index.htmlの表示)

Page 19: Alfresco CI

Jenkinsのインストールと設定

Page 20: Alfresco CI

インストール

‣ yumで入れました→ https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+RedHat+distributions

✓ YUMリポジトリを追加

✓ RPMのキーのインストール

✓ yumコマンドでインストール

Page 21: Alfresco CI

プラグインのインストール

‣ Jenkinsの管理 -> プラグインの管理→Git Plugin

→Maven 2 Plugin Plugin

→ Jenkins Cobertura Plugin

→ javadoc

Page 22: Alfresco CI

ジョブの作成

‣ 新規ジョブの作成→ジョブ名: <your job name>

→ “フリースタイル・プロジェクトのビルド”

Page 23: Alfresco CI

ジョブの設定

‣ ソースコード管理システム→Git

→ Repositories: https://github.com/mryoshio/AlfrescoStudy.git

‣ ビルド→シェルの実行

✓ cd ci_maven/

→Mavenの呼び出し

✓ゴール: clean javadoc:javadoc cobertura:cobertura

Page 24: Alfresco CI

ジョブの設定 (続き)

‣ ビルド後の処理→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

Page 25: Alfresco CI

[デモ] Continuous Integration

Page 26: Alfresco CI

今回の動作イメージ

1. clone

push 3. notify

2. build / test

Page 27: Alfresco CI

Copyright 2012 tachibanakikaku.com. All rights reserved.