概要

Seasarプロジェクト用のJenkins環境の説明です。自由に書き足してください。

アカウント

アカウントは、Seasar Membersで利用しているユーザ名とパスワードです。

運営方針

Seasar.orgのコミッタアカウントでログインすると利用することができます。既に作成されているジョブの設定や命名規則を真似てジョブを作成し利用してください。

通常のビルドとテストに加えて、Teeda や S2Dao が行っているように、各自の所属するプロジェクトが依存するプロジェクト(例: S2Container) の SNAPSHOT を使ってのビルドとテストをしてもらえると、万が一、依存先のプロジェクトがデグってしまった場合に早期発見できる可能性が高まりますので、是非そのような用途にもお使いください。

アイデア

  • Jenkinsのビルド失敗通知専用のメーリングリストを作成し、そこにメールを投げる [operation:2123]
    • 1. コミッタ全員
    • 2. プロジェクト単位
      • [2009-02-11] 保留中

導入されているPlugin

  • Disk Usage Plugin
  • JIRA Plugin
  • Task Scanner
  • Checkstyle Plugin
  • FindBugs Plugin
  • PMD Plugin
  • Warnings Plugin
  • Phing Plugin
  • Emotional Jenkins Plugin
  • (Jenkins Test Database Plug-in)

ジョブ設定例

Maven プロジェクト + JDK 1.5

Maven プロジェクトのジョブを JDK 1.5 環境でビルドしたい場合は、下記の設定が必要です。この設定により、ジョブの起動時は JDK 1.6 ですが、コンパイル時は JDK-1.5 が使用されます。

これは JENKINS-18403 に関連し、ジョブ実行時に pom.xml を解析する際、ジョブ設定で指定した JDK 1.5 ではなく、Jenkins が動作する JDK (最新の JDK) が使用されてしまい、コンパイルに失敗するためです。

この問題はフリースタイル・プロジェクトのジョブでは発生しません。

  • JDK: JDK-1.6
  • ビルド -> ゴールとオプション:
    • -Dmaven.compiler.fork=true -Dmaven.compiler.executable=${JENKINS_HOME}/tools/hudson.model.JDK/JDK-1.5/bin/javac clean install

ビルド設定

Open Tasks

  • Scan workspace for open tasks: チェックする
  • Files to scan: **/*.java
  • Tasks tags
    • High priority: FIXME
    • Normal priority: TODO

PMD

  • Publish PMD Analysis Results: チェックする
    • 使い方?? (詳しい方記述お願いします)

Checkstyle

  • Publish Checkstyle Analysis Results: チェックする
    • 使い方?? (詳しい方記述お願いします)

FindBugs

  • Publish FindBugs Analysis Results: チェックする
    • 使い方?? (詳しい方記述お願いします)

Emotional Jenkins

  • ビルド後の処理
    • Emotional Jenkins: チェックする

ビルド後の処理

  • Publish Compiler Warnings: チェックする
    • File pattern: **/*.java

テスト用データベースを使用するには

Jenkins用のサーバにはテスト用のデータベース環境を用意してあります。このデータベースを使用することでDBを使用したテストも実行することができます。データベース環境を使用したい場合は、次のジョブ設定を行うとジョブ名に従って5分以内に自動作成されます。

  • ジョブ設定
    • Use test database: チェックする (必須)
    • 追加で必要な数: 任意の数字 (オプション)
jenkins_testdb.png

データベースソフトウェアに応じて用意されるデータベース環境は下記のとおりです。

PostgreSQL

  • PostgreSQL 8.4.13
    • postgresql-server-8.4.13-1.el6_3.x86_64
  • HOST: localhost
  • PORT: 5432 (default)
Jenkins JobDBUSERPASS
s2container-2.4-seasar2s2container_2_4_seasar2s2container_2_4_seasar2s2container_2_4_seasar2
s2container-2.4-s2jdbc-its2container_2_4_s2jdbc_its2container_2_4_s2jdbc_its2container_2_4_s2jdbc_it
Cubby-2.0.xcubby_2_0_xcubby_2_0_xcubby_2_0_x
「追加で必要な数」を設定した場合の追加環境
s2container-2.4-seasar2s2container_2_4_seasar2_連番s2container_2_4_seasar2_連番s2container_2_4_seasar2_連番
s2container-2.4-s2jdbc-its2container_2_4_s2jdbc_it_連番s2container_2_4_s2jdbc_it_連番s2container_2_4_s2jdbc_it_連番
Cubby-2.0.xcubby_2_0_x_連番cubby_2_0_x_連番cubby_2_0_x_連番

その他、参考情報

  • デフォルトエンコーディング
postgres=# \encoding
UTF8

MySQL

  • MySQL 5.1.61
    • mysql-server-5.1.61-4.el6.x86_64
  • HOST: localhost
  • PORT: 3306 (default)
  • Default Storage Engine: InnoDB

MySQLの作成できるDBユーザ名の長さが16文字までに制限されているため、次のように「.」や「-」以前の文字列をユーザ名とパスワードに使用します。

Jenkins JobDBUSERPASS
s2container-2.4-seasar2s2container_2_4_seasar2s2containers2container
s2container-2.4-s2jdbc-its2container_2_4_s2jdbc_its2containers2container
Cubby-2.0.xcubby_2_0_xcubbycubby
「追加で必要な数」を設定した場合の追加環境
s2container-2.4-seasar2s2container_2_4_seasar2_連番s2containers2container
s2container-2.4-s2jdbc-its2container_2_4_s2jdbc_it_連番s2containers2container
Cubby-2.0.xcubby_2_0_x_連番cubbycubby

注意事項

  • テーブル名の大文字と小文字は区別されます

Jenkinsから利用可能なこのMySQLサーバ環境は、テーブル名の大文字と小文字が区別されます。これはMySQLのデフォルトの仕様として、大文字と小文字が区別されるファイルシステム環境ではテーブル名の大文字と小文字も区別して管理されるためです。

その他、参考情報

  • デフォルトエンコーディング
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

Oracle

  • Oracle Express Edition
    • Oracle Database Express Edition 11g Release 2 for Linux x64 (11.2.0.1)
  • HOST: localhost
  • PORT: 1521 (default)

Oracleは接続ユーザごとに異なる空間を持っているため、接続先DB(インスタンス)はすべて同じ xe になります。

Jenkins JobDBUSERPASS
s2container-2.4-seasar2xes2container_2_4_seasar2s2container_2_4_seasar2
s2container-2.4-s2jdbc-itxes2container_2_4_s2jdbc_its2container_2_4_s2jdbc_it
Cubby-2.0.xxecubby_2_0_xcubby_2_0_x
「追加で必要な数」を設定した場合の追加環境
s2container-2.4-seasar2xes2container_2_4_seasar2_連番s2container_2_4_seasar2_連番
s2container-2.4-s2jdbc-itxes2container_2_4_s2jdbc_it_連番s2container_2_4_s2jdbc_it_連番
Cubby-2.0.xxecubby_2_0_x_連番cubby_2_0_x_連番

その他、参考情報

  • キャラクタセット
SQL> select parameter, value from nls_database_parameters where parameter like '%HARACTERSET%';
PARAMETER
------------------------------
VALUE
--------------------------------------------------------------------------------
NLS_CHARACTERSET
AL32UTF8
NLS_NCHAR_CHARACTERSET
AL16UTF16

DB2

  • DB2 Express-C 10.1 for Linux 64-bit
    • db2_v101_linuxx64_expc
  • HOST: localhost
  • PORT: 50000 (default)

DB2の作成できるDB名の長さが8文字までに制限されているため、接続先DBはすべて同じ db にし、ジョブごとに異なるスキーマを使用します。スキーマの指定には必ず 大文字 で指定してください。 また、DB2は接続ユーザがローカルアカウントのため、接続ユーザはすべて同じアカウントを使用するようになっています。

Jenkins JobDBSCHEMAUSERPASS
s2container-2.4-seasar2dbS2CONTAINER_2_4_SEASAR2db2inst1seasar
s2container-2.4-s2jdbc-itdbS2CONTAINER_2_4_S2JDBC_ITdb2inst1seasar
Cubby-2.0.xdbCUBBT_2_0_Xdb2inst1seasar
「追加で必要な数」を設定した場合の追加環境
s2container-2.4-seasar2dbS2CONTAINER_2_4_SEASAR2_連番db2inst1seasar
s2container-2.4-s2jdbc-itdbS2CONTAINER_2_4_S2JDBC_IT_連番db2inst1seasar
Cubby-2.0.xdbCUBBT_2_0_X_連番db2inst1seasar

注意事項

  • dicon ファイルを使用した xaDataSource の設定例
    • s2container_2_4_s2jdbc_it の場合
      • addProperty で currentSchema と currentFunctionPath を設定します
      • スキーマ名の指定には 大文字小文字 の区別があります、必ず 大文字 で指定してください、小文字 で指定するとストアドプロシージャの実行に失敗します
      • currentFunctionPath を指定しない場合、ストアドプロシージャの実行に失敗します
<component name="xaDataSource"
    class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
    <property name="driverClassName">
        "com.ibm.db2.jcc.DB2Driver"
    </property>
    <property name="URL">
        "jdbc:db2://localhost:50000/db"
    </property>
    <property name="user">"db2inst1"</property>
    <property name="password">"seasar"</property>
    <initMethod name="addProperty">
        <arg>"currentSchema"</arg>
        <arg>"S2CONTAINER_2_4_S2JDBC_IT"</arg>
    </initMethod>
    <initMethod name="addProperty">
        <arg>"currentFunctionPath"</arg>
        <arg>"S2CONTAINER_2_4_S2JDBC_IT"</arg>
    </initMethod>
</component>

その他、参考情報

  • キャラクタセット
$ db2 get database configuration for データベース名 | grep -i code
 Database code page                                      = 1208
 Database code set                                       = UTF-8
 Database country/region code                            = 1

再配布禁止のライブラリを使用するには

商用DBなどの再配布禁止のライブラリをCIに使用したい場合は、Jenkinsが導入されたサーバのローカルリポジトリにあるライブラリを指定することで使用することができます。

利用上の注意

再配布禁止ライブラリのための <dependency> は、pom.xml の <dependencies> に直接記述しないでください。これは、再配布禁止のライブラリは、Jenkinsが導入されたサーバのローカルリポジトリにしか配置されていないため、他の人が自分の環境にチェックアウトした時にビルドできなくなるためです。

再配布禁止ライブラリは、Maven2 のプロファイルを使用して依存性を定義し、Jenkinsのジョブ設定にあるビルド手順で使用するプロファイルを指定するといいでしょう。

用意してあるライブラリ

他に希望するライブラリ・バージョンがある場合は operation メーリングリスト までご相談ください。

  • Oracle: ojdbc14.jar
<dependency>
  <groupId>com.oracle</groupId>
  <artifactId>ojdbc14</artifactId>
  <version>10.2.0.4</version>
</dependency>
  • Oracle: ojdbc5.jar
  • 推奨
<dependency>
  <groupId>com.oracle</groupId>
  <artifactId>ojdbc5</artifactId>
  <version>11.2.0.3</version>
</dependency>
  • 旧バージョン
<dependency>
  <groupId>com.oracle</groupId>
  <artifactId>ojdbc5</artifactId>
  <version>11.1.0.7.0</version>
</dependency>
  • Oracle: ojdbc6.jar
  • 推奨
<dependency>
  <groupId>com.oracle</groupId>
  <artifactId>ojdbc6</artifactId>
  <version>11.2.0.3</version>
</dependency>
  • 旧バージョン
<dependency>
  <groupId>com.oracle</groupId>
  <artifactId>ojdbc6</artifactId>
  <version>11.1.0.7.0</version>
</dependency>
  • MS SQL Server: sqljdbc.jar
<dependency>
  <groupId>com.microsoft</groupId>
  <artifactId>sqljdbc</artifactId>
  <version>1.2.2828</version>
</dependency>
  • DB2: db2jcc.jar
  • 推奨
<dependency>
  <groupId>com.ibm</groupId>
  <artifactId>db2jcc</artifactId>
  <version>3.64.104</version>
</dependency>
  • 旧バージョン
<dependency>
  <groupId>com.ibm</groupId>
  <artifactId>db2jcc</artifactId>
  <version>3.50.152</version>
</dependency>
  • DB2: db2jcc4.jar
  • 推奨
<dependency>
  <groupId>com.ibm</groupId>
  <artifactId>db2jcc4</artifactId>
  <version>4.14.111</version>
</dependency>
  • 旧バージョン
<dependency>
  <groupId>com.ibm</groupId>
  <artifactId>db2jcc4</artifactId>
  <version>3.50.152</version>
</dependency>

ドキュメント

その他、Jenkinsの詳細な使い方については、Jenkinsのサイトなどを見てください。


添付ファイル: filejenkins_testdb.png 2122件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-08-10 (土) 14:11:29 (1418d)