Jenkinsは、オープンソースで開発されているCIツールである。

Jenkinsのインストール

Red Hat Enterprise Linux及びCentOSでJenkinsをインストールする例を示す。

# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
# rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
# yum install jenkins

Jnekinsの起動

# service jenkins start
Starting Jenkis                   [ OK ]

プロキシの設定

プロキシを設定するには、[Jenkinsの管理] - [プラグインの管理] - [高度な設定]から設定する。

Jenkinsが設定する環境変数

ジョブを実行する際、Jenkinsは以下に示す環境変数を設定する。これらの環境変数はシェルスクリプト、バッチコマンド及びAntスクリプトで参照することができる。

Jenkinsが設定する環境変数
環境変数説明
BUILD_IDビルドID
BUILD_NUMBERビルド番号
BUILD_TAGjenkins-${JOB_NAME}-${BUILD_NUMBER}形式の文字列
EXECUTOR_NUMBERビルドを実行するエグゼキュータを識別する一意な番号
JAVA_HOMEジョブが特定のJDKを使用する場合、設定されていればそのJDKのJAVA_HOME
JOB_NAMEビルドのプロジェクト名
SVN_REVISIONSubversionのリビジョン番号
WORKSPACEワークスペースの絶対パス

ビルド

Antの呼び出し

JenkinsでAntのオプション(-debugなど)を指定するには、「ターゲット」テキストボックスにAntのオプションを入力する。

ジョブを定期的に実行

「ビルド・トリガ」の「定期的に実行」チェックボックスにチェックを入れると、「スケジュール」テキストエリアが表示されるので、crontabの書式でスケジュールを入力する。最後に「保存」ボタンをクリックして、設定を終了する。

ビルドのパラメータ化

ビルドのパラメータ化を行うと、ビルド実行時に「このビルドはパラメータが必要です。」と表示され、パラメータを入力する画面が表示される。入力したパラメータは環境変数に設定され、シェルやAntタスクで参照することができる。

「新規ジョブ作成」や「設定」で「ビルドのパラメータ化」チェックボックスにチェックを入れると、「パラメータの追加」ボタンが表示される。「パラメータの追加」ボタンをクリックすると、メニューが表示される。メニューには次の選択肢が含まれる。

テキスト

次表に「テキスト」で設定するパラメータを示す。

Jenkinsの「テキスト」パラメータ
パラメータ説明
名前環境変数の名前を入力する。
デフォルト値デフォルト値を入力する。
説明実行時にユーザ向けに表示される説明文を入力する。

ビルドの実行時にテキストエリアが表示されて、テキストを入力できる。テキストエリアの初期値は「デフォルト値」で指定したテキストである。「テキスト」パラメータは「文字列」パラメータと異なり、複数行の文字列を入力できる。入力したテキストが「名前」で指定した環境変数に設定されて、ビルドが実行される。

パスワード

次表に「パスワード」で設定するパラメータを示す。

Jenkinsの「パスワード」パラメータ
パラメータ説明
名前環境変数の名前を入力する。
デフォルト値デフォルト値を入力する。
説明実行時にユーザ向けに表示される説明文を入力する。

ビルドの実行時にテキストボックスが表示されて、テキストを入力できる。テキストボックスのテキストはアスタリスク(*)でマスクされ、文字が分からないようになる。テキストボックスの初期値は「デフォルト値」で指定したテキストである。入力したテキストが「名前」で指定した環境変数に設定されて、ビルドが実行される。

ビルド

次表に「ビルド」で設定するパラメータを示す。

Jenkinsの「ビルド」パラメータ
パラメータ説明
名前環境変数の名前を入力する。
プロジェクトリストボックスにプロジェクトの一覧が表示されるので、いずれかを選択する。

ビルド実行時に、「プロジェクト」で指定したプロジェクトのビルド履歴がリストボックスに表示される。リストボックスから選択したビルド履歴のURL(「http://172.18.28.12:8080/job/Project/1/」の形式)が「名前」で指定した環境変数に設定されて、ビルドが実行される。

ファイル

次表に「ファイル」で設定するパラメータを示す。

Jenkinsの「ファイル」パラメータ
パラメータ説明
ファイルファイルの名前を入力する。
説明実行時にユーザ向けに表示される説明文を入力する。

ビルドの実行時にテキストボックスが表示されて、ファイルのパスを入力できる。「参照...」ボタンをクリックして、ダイアログからファイルを選択することもできる。

テキストボックスに入力したファイルがブラウザからワークスペースにアップロードされる。ワークスペースでのファイル名は「ファイル」で指定した名前になる。

文字列

次表に「文字列」で設定するパラメータを示す。

Jenkinsの「文字列」パラメータ
パラメータ説明
名前環境変数の名前を入力する。
デフォルト値デフォルト値を入力する。
説明実行時にユーザ向けに表示される説明文を入力する。

ビルドの実行時にテキストボックスが表示されて、テキストを入力できる。テキストボックスの初期値は「デフォルト値」で指定したテキストである。入力したテキストが「名前」で指定した環境変数に設定されて、ビルドが実行される。

真偽値

次表に「真偽値」で設定するパラメータを示す。

Jenkinsの「真偽値」パラメータ
パラメータ説明
名前環境変数の名前を入力する。
デフォルト値チェックを入れるとデフォルト値がtrue、チェックを入れないとデフォルト値がfalseになる。
説明実行時にユーザ向けに表示される説明文を入力する。

ビルドの実行時にチェックボックスが表示される。チェックを入れると環境変数の値に"true"が設定され、チェックを入れないと環境変数の値に"false"が設定される。

選択

次表に「選択」で設定するパラメータを示す。

Jenkinsの「選択」パラメータ
パラメータ説明
名前環境変数の名前を入力する。
選択値選択できる値を入力する。
説明実行時にユーザ向けに表示される説明文を入力する。

ビルドの実行時にリストボックスが表示されて、「選択値」で指定した候補の中から選択できる。選択した値が「名前」で指定した環境変数に設定されて、ビルドが実行される。

List Subversion tags (and more)

このパラメータを使用するには、Jenkins Subversion Plug-inが必要である。次表に「List Subversion tags (and more)」で設定するパラメータを示す。

Jenkinsの「List Subversion tags (and more)」パラメータ
パラメータ説明
Name環境変数の名前を入力する。
Repository URLリポジトリのURLを入力する。
Tags filter表示するタグのフィルタを正規表現を使って指定する。
Default valueデフォルト値を入力する。
Maxmum tags to displayドロップダウンに表示するタグの最大数を入力する。数字以外の値を指定したときにはすべて表示される。
Sort newest firstチェックを入れると、新しいものから順に表示される。
Sort Z to Aチェックを入れると、アルファベットの降順に表示される。

上流プロジェクト及び下流プロジェクトの設定

Jenkinsでは、上流プロジェクトや下流プロジェクトを設定して、ジョブの実行順序を制御することができる。

Jenkins分散ビルド

Jenkinsには分散ビルドの機能があり、複数のビルドサーバを1台のJenkinsサーバで管理できる。分散ビルドの場合、ビルドサーバは役割により「マスタ」と「スレーブ」に分かれる。

新規ノードの作成

「Jenkinsの管理」画面で「ノードの管理」をクリックする。「新規ノード作成」をクリックする。

SSH経由でLinuxマシンのスレーブエージェントを起動

スレーブ側にsshの設定(マスタサーバの公開鍵の配置など)が終わっていれば、マスタサーバのJenkinsが、sshによってスレーブに「slave agent」を自動的にコピーして、起動と停止を実行する。利用OSがUnix系OSであれば、スレーブサーバ側での操作がほぼなく、1番簡単にマスタ/スレーブを実行することができる。