alfresco ci

Post on 29-Jan-2018

1.811 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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.

top related