Jenkins
CI(継続的インテグレーション)を行うためのツール。
本体は、warファイル1つだけで起動も簡単。
起動
java -jar jenkins.war
で起動。
http://localhost:8080
でアクセスできる。もしポートを変更したい場合はhttpPortオプションで変更できる。
java -jar jenkins.war –httpPort=8081
その他の起動オプション
https://wiki.jenkins-ci.org/display/JA/Starting+and+Accessing+Jenkins
| コマンドライン・パラメータ | 説明 |
|---|---|
| --javaHome=$JAVA_HOME | JavaやAntが必要なビルドを実行するときに使用する$JAVA_HOMEをJenkinsに渡します。これはJenkinsを起動するJREではありません(Jenkins上で使用するJREを指定します)。デフォルトは、Jenkinsを実行するのに使用したJREです。 |
| --httpPort=$HTTP_PORT | Jenkinsが使用するHTTPプロトコルのポート番号を指定します。デフォルトは8080です。これを使用しない(_HTTPS_を使用)ようにするには、-1を指定します。 |
| --httpListenAddress=$HTTP_HOST | このパラメータで、Jenkinsがリクエストを受け付けるIPアドレスを指定できます。環境変数$HTTP_HOSTが指定されていれば、それを利用します。デフォルトでは 0.0.0.0 です。--- この場合、すべての有効なインタフェース上で(httpPortで指定された)ポートをリスンします。 |
| --httpsPort=$HTTP_PORT | HTTPSプロトコルで使用するポート番号を指定します。 |
| --httpsListenAddress=$HTTPS_HOST | JenkinsがHTTPSプロトコルでリクエストを受け付けるIPアドレスを指定できます。環境変数$HTTPS_HOSTが指定されていれば、それを利用します。 |
| --ajp13Port=$AJP_PORT | 標準のAJP13プロトコルを使う場合、$AJP_PORTRを利用して、Jenkinsがリスンするポートを指定できます。デフォルトは8009です。(_HTTPS_を使用するため) これを使用しないようにするには、-1を指定します。 |
| --ajp13ListenAddress=$AJP_HOST | JenkinsがAJP13プロトコルのリクエストを受け付ける、IPアドレスを指定できます。デフォルトでは 0.0.0.0 です。 --- i.e. この場合、すべての有効なインタフェース上で(ajpPortで指定された) ポートをリスンします。 |
| --argumentsRealm.passwd.$ADMIN_USER=password | ユーザー $ADMIN_USERのパスワードを設定します。Jenkinsのセキュリティが有効化されている場合、Jenkinsやプロジェクトを設定するために、$ADMIN_USERでログインする必要があります。注意: 管理者権限を持つユーザーも指定しなければなりません。(以下を参照してください) |
| --argumentsRealm.roles.$ADMIN_USER=admin | $ADMIN_USERを管理者として設定し、Jenkinsのセキュリティが有効化されていれば、Jenkinsを設定できるようにします。詳しくはJenkinsのセキュリティを参照してください。 |
デーモン化
Linux
https://gist.github.com/wataru420/1757063
実行するユーザとjenkinsの各ファイルのパスを決める
ディレクトリ構成や各パスは自由。
とりあえず、ここでは以下の構成にする。
jenkinsのルート ├─bin <--- 実行シェルとかjenkins.warとかを置く ├─home <--- JENKINS_HOME └─log
start-jenkins.sh の作成
#!/bin/bash
JENKINS_ROOT=/home/test/jenkins
JENKINS_WAR=${JENKINS_ROOT}/bin/jenkins.war
JENKINS_LOG=${JENKINS_ROOT}/log/jenkins.log
JENKINS_OPT="--httpPort=8081 --ajp13Port=-1"
export JENKINS_HOME=${JENKINS_ROOT}/home
JAVA=/usr/bin/java
nohup nice $JAVA -jar $JENKINS_WAR $JENKINS_OPT > $JENKINS_LOG 2>&1 &
stop-jenkins.sh
#!/bin/bash
kill `ps -ef | grep [j]enkins.war | awk '{ print $2 }'`
/etc/init.d/jenkins
#! /bin/bash
#
# chkconfig: - 85 15
# description: Jakarta Tomcat Java Servlets and JSP server
# jenkins Start/Stop the Jenkins Continuous Integration server.
# Source function library.
. /etc/rc.d/init.d/functions
# Get config.
. /etc/sysconfig/network
# Check that networking is up.
[ "${NETWORKING}" = "no" ] && exit 0
startup=/home/test/jenkins/bin/start-jenkins.sh
shutdown=/home/test/jenkins/bin/stop-jenkins.sh
#export JAVA_HOME=/usr/local/java/
JENKINS_USER=test
start(){
echo -n $"Starting Jenkins service: "
su - $JENKINS_USER -c $startup
RETVAL=$?
echo
}
stop(){
action $"Stopping Jenkins service: "
su - $JENKINS_USER -c $shutdown
RETVAL=$?
echo
}
status(){
numproc=`ps -ef | grep [j]enkins.war | wc -l`
if [ $numproc -gt 0 ]; then
echo "Jenkins is running..."
else
echo "Jenkins is stopped..."
fi
}
restart(){
stop
sleep 5
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 1
esac
exit 0
パーミッション変更とデーモン追加
各シェルのパーミッションを設定して
chkconfig jenkins on
でデーモン追加。
基本的な設定
workspace の設定
[Jenkinsの管理] -> [システムの設定] -> [高度な設定]
にあるワークスペース・ルートディレクトリを
${ITEM_ROOTDIR}/workspace
にすると、jobsの各ジョブの配下にワークスペースが作成される。
バックアップ等の都合を考えて、状況に応じて変更すると良い。
プラグイン
状態によってjenkinsの表示を変える
http://natural-born-minority.blogspot.jp/2012/12/blog-post.html
Emotional Jenkins Plugin
というプラグインを入れる。ただし、
1.454
以前のバージョンでないと機能しない。
状態を判定する閾値を設定する
http://shokos.hatenablog.com/entry/2012/08/15/112833
テストが失敗しても状態が「問題ない」と判定される場合は、閾値を設定する。
xUnit Plugin
を導入して、閾値を全て0にする。
[カテゴリ: ツール > 開発]
[カテゴリ: プログラミング全般]
[通知用URL]
Tweet
最終更新時間:2013年07月11日 23時24分17秒