日本語 : Building a software project

オリジナル:Building a software project

プロジェクトの設定

Jenkinsのトップ画面から、"新規ジョブ作成"そして"フリースタイル・プロジェクトのビルド"を選択します。このジョブのタイプは次の要素を含みます。

  • (オプション)ソースコードがあるCVSやSubversionのようなソース管理システム。
  • (オプション) Jenkinsがいつビルドを行うのかを制御するトリガー。
  • 実際にビルドを行う何らかのスクリプト(ant、maven、シェルスクリプト、バッチファイル等)。
  • (オプション) 成果物のアーカイブやjavadocやテスト結果を保存など、ビルドから情報の収集。
  • (オプション)メール、IM、バグ管理ツールの更新等、ビルド結果によって他の人々やシステムへ通知。

詳しくは、設定画面のアイコン (?)をクリックしてください。

Jenkinsが設定する環境変数

Jenkinsは、Jenkins#1が実行するシェルスクリプト、WindowsのバッチファイルおよびAntで利用可能ないくつかの環境変数を設定します。環境変数のリストと使い方は#下記に示します。

ソース管理システムを使用しないプロジェクトのビルド

デモやSVN/CVSのリポジトリが利用できない場合でも、プロジェクトをビルドする必要がある場合があります。その場合は、プロジェクト設定画面の"ソースコード管理システム"で"なし"を選択し、以下を実行します。

  1. 少なくとも1回プロジェクトをビルドします。これは失敗しますが、Jenkinsは $JENKINS_HOME/jobs/プロジェクト名/workspace のようなディレクトリを作成します。
  2. プロジェクトに必要なファイルを、 $JENKINS_HOME/jobs/プロジェクト名/workspace にコピーします。
  3. 再度ビルドを実行し、適切に設定を行います。

Jenkinsが設定する環境変数

ジョブを実行するとき、Jenkinsはシェルスクリプト、バッチコマンドおよびAntスクリプト{^}1^で利用できるいくつかの環境変数を設定します。以下の表に利用可能な環境変数の一覧を示します。

環境変数

説明

BUILD_NUMBER

"153"のような現在のビルド番号。

BUILD_ID

"2005-08-22_23-59-59" ( YYYY-MM-DD_hh-mm-ss 形式)のような現在のビルドのID。

JOB_NAME

このビルドのプロジェクト名。この名前は最初に設定を行った際に設定したジョブ名です。Jenkinsのメイン画面であるダッシュボードの3番目のカラムの値です。

BUILD_TAG

jenkins-${JOBNAME}-${BUILD_NUMBER} 形式の文字列。リソースファイル、jarファイルなどを容易に識別するために便利です。

EXECUTOR_NUMBER

このビルドを実行するエグゼキューターを識別(同一マシン内で)するユニークな番号。"ビルド実行状態"で表示されている番号ですが、1ではなく0始まりです。

JAVA_HOME

ジョブが特定のJDKを使用する場合、設定されていればそのJDKの JAVA_HOME 。パスも $JAVA_HOME/bin にアップデートされます。.

WORKSPACE

ワークスペースの絶対パス。

SVN_REVISION

Subversionを使用したプロジェクトにおけるそのモジュールのリビジョン番号。

CVS_BRANCH

CVSを使用したプロジェクトにおけるそのモジュールのブランチ。トランクをチェックアウトする場合設定されません。

シェルスクリプトとWindowsのバッチコマンド

ビルドの実行にシェルスクリプトを使用する場合、この環境変数を直接シェルスクリプトで使用するか、パラメータとして使用できます。下図は使用方法の1例です。

Antスクリプト

ビルドの実行にAntスクリプトを使用する場合、下の方にある 高度な設定... をクリックすると、プロパティ テキストエリアが表示され、プロパティに環境変数を設定することができます。下図はAntのプロパティにJenkinsの環境変数を設定する方法の1例です。

別の方法として、 build.xml ファイルに全ての環境変数をプロパティとして使用できる方法があります。下記は、プロジェクト名とビルド番号を含む"label"プロパティの設定方法の1例です。

<property environment="env"/>
<property name="label" value="${env.JOB_NAME}-${env.BUILD_NUMBER}"/>

自動ビルドの設定

Jenkinsでのビルドは、定期的に(設定で指定したスケジュールに従って)、プロジェクトのソースが変更されたのを検出したとき、もしくは、次のURLがリクエストされたときに起動します。

http://あなたのホスト/jenkins/job/プロジェクト名/build

上記の方法を使うことで、ビルドを様々な方法、契機で起動することができます。詳細(とりわけ、安全に行う方法)は、リモートアクセスAPIを参照してください。

もしくは、Jenkinsのセキュリティが有効化されている場合に、スクリプトかビルドを起動したいのであれば、プロジェクト設定画面の"Trigger builds remotely" を選択して、認証キーを設定してください。そうすれば、次のURLにアクセスすればビルドを起動することができます。

http://あなたのホスト/jenkins/job/プロジェクト名/build?token=認証キー

メールからのビルド (sendmail)

システムのルート権限を持っていてsendmailを使用しているなら、 /etc/aliases をいじって次の1行を追加するのが一番簡単です。

jenkins-foo: "|/bin/wget -o /dev/null http://あなたのホスト/jenkins/job/プロジェクト名/build"

そして、 "newaliases" コマンドを実行して、sendmailに変更を反映します。誰かがメールを"jenkins-foo@yoursystem"を送れば、ビルドを起動します。詳しくは、sendmailの設定を参照してください。

メールからのビルド (qmail)

qmailでは、/var/qmail/alias/.qmail-jenkins を以下のように記述します。

|/bin/wget -o /dev/null http://あなたのホスト/jenkins/job/プロジェクト名/build

CVSの変更によるビルド

誰かがリポジトリに変更を加えたときにいつでもビルドを実行するには、 /CVSROOT/loginfo から上記のプログラムを起動します。もしくは、CVSの通知メールで上記に説明したようにビルドを実行します。

もしくは、Jenkinsを設定して定期的にソース管理システムを監視して、変更を検出したときに新規ビルドを実行することもできます。


1 Note: Mavenによるビルドでもこれらの変数にアクセスできるでしょう。誰か確かめてね。

Attachments:

build_shell.png (image/png)
ant_script.png (image/png)
ant_script.png (image/png)