!!!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にする。 {{category2 ツール,開発}} {{category2 プログラミング全般}}