Seasarプロジェクト用のJenkins環境の説明です。自由に書き足してください。
アカウントは、Seasar Membersで利用しているユーザ名とパスワードです。
Seasar.orgのコミッタアカウントでログインすると利用することができます。既に作成されているジョブの設定や命名規則を真似てジョブを作成し利用してください。
通常のビルドとテストに加えて、Teeda や S2Dao が行っているように、各自の所属するプロジェクトが依存するプロジェクト(例: S2Container) の SNAPSHOT を使ってのビルドとテストをしてもらえると、万が一、依存先のプロジェクトがデグってしまった場合に早期発見できる可能性が高まりますので、是非そのような用途にもお使いください。
Maven プロジェクトのジョブを JDK 1.5 環境でビルドしたい場合は、下記の設定が必要です。この設定により、ジョブの起動時は JDK 1.6 ですが、コンパイル時は JDK-1.5 が使用されます。
これは JENKINS-18403 に関連し、ジョブ実行時に pom.xml を解析する際、ジョブ設定で指定した JDK 1.5 ではなく、Jenkins が動作する JDK (最新の JDK) が使用されてしまい、コンパイルに失敗するためです。
この問題はフリースタイル・プロジェクトのジョブでは発生しません。
Jenkins用のサーバにはテスト用のデータベース環境を用意してあります。このデータベースを使用することでDBを使用したテストも実行することができます。データベース環境を使用したい場合は、次のジョブ設定を行うとジョブ名に従って5分以内に自動作成されます。
データベースソフトウェアに応じて用意されるデータベース環境は下記のとおりです。
Jenkins Job | DB | USER | PASS |
s2container-2.4-seasar2 | s2container_2_4_seasar2 | s2container_2_4_seasar2 | s2container_2_4_seasar2 |
s2container-2.4-s2jdbc-it | s2container_2_4_s2jdbc_it | s2container_2_4_s2jdbc_it | s2container_2_4_s2jdbc_it |
Cubby-2.0.x | cubby_2_0_x | cubby_2_0_x | cubby_2_0_x |
「追加で必要な数」を設定した場合の追加環境 | |||
s2container-2.4-seasar2 | s2container_2_4_seasar2_連番 | s2container_2_4_seasar2_連番 | s2container_2_4_seasar2_連番 |
s2container-2.4-s2jdbc-it | s2container_2_4_s2jdbc_it_連番 | s2container_2_4_s2jdbc_it_連番 | s2container_2_4_s2jdbc_it_連番 |
Cubby-2.0.x | cubby_2_0_x_連番 | cubby_2_0_x_連番 | cubby_2_0_x_連番 |
postgres=# \encoding UTF8
MySQLの作成できるDBユーザ名の長さが16文字までに制限されているため、次のように「.」や「-」以前の文字列をユーザ名とパスワードに使用します。
Jenkins Job | DB | USER | PASS |
s2container-2.4-seasar2 | s2container_2_4_seasar2 | s2container | s2container |
s2container-2.4-s2jdbc-it | s2container_2_4_s2jdbc_it | s2container | s2container |
Cubby-2.0.x | cubby_2_0_x | cubby | cubby |
「追加で必要な数」を設定した場合の追加環境 | |||
s2container-2.4-seasar2 | s2container_2_4_seasar2_連番 | s2container | s2container |
s2container-2.4-s2jdbc-it | s2container_2_4_s2jdbc_it_連番 | s2container | s2container |
Cubby-2.0.x | cubby_2_0_x_連番 | cubby | cubby |
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は接続ユーザごとに異なる空間を持っているため、接続先DB(インスタンス)はすべて同じ xe になります。
Jenkins Job | DB | USER | PASS |
s2container-2.4-seasar2 | xe | s2container_2_4_seasar2 | s2container_2_4_seasar2 |
s2container-2.4-s2jdbc-it | xe | s2container_2_4_s2jdbc_it | s2container_2_4_s2jdbc_it |
Cubby-2.0.x | xe | cubby_2_0_x | cubby_2_0_x |
「追加で必要な数」を設定した場合の追加環境 | |||
s2container-2.4-seasar2 | xe | s2container_2_4_seasar2_連番 | s2container_2_4_seasar2_連番 |
s2container-2.4-s2jdbc-it | xe | s2container_2_4_s2jdbc_it_連番 | s2container_2_4_s2jdbc_it_連番 |
Cubby-2.0.x | xe | cubby_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の作成できるDB名の長さが8文字までに制限されているため、接続先DBはすべて同じ db にし、ジョブごとに異なるスキーマを使用します。スキーマの指定には必ず 大文字 で指定してください。 また、DB2は接続ユーザがローカルアカウントのため、接続ユーザはすべて同じアカウントを使用するようになっています。
Jenkins Job | DB | SCHEMA | USER | PASS |
s2container-2.4-seasar2 | db | S2CONTAINER_2_4_SEASAR2 | db2inst1 | seasar |
s2container-2.4-s2jdbc-it | db | S2CONTAINER_2_4_S2JDBC_IT | db2inst1 | seasar |
Cubby-2.0.x | db | CUBBT_2_0_X | db2inst1 | seasar |
「追加で必要な数」を設定した場合の追加環境 | ||||
s2container-2.4-seasar2 | db | S2CONTAINER_2_4_SEASAR2_連番 | db2inst1 | seasar |
s2container-2.4-s2jdbc-it | db | S2CONTAINER_2_4_S2JDBC_IT_連番 | db2inst1 | seasar |
Cubby-2.0.x | db | CUBBT_2_0_X_連番 | db2inst1 | seasar |
<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 メーリングリスト までご相談ください。
<dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc14</artifactId> <version>10.2.0.4</version> </dependency>
<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>
<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>
<dependency> <groupId>com.microsoft</groupId> <artifactId>sqljdbc</artifactId> <version>1.2.2828</version> </dependency>
<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>
<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のサイトなどを見てください。