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秒