私はJenkinsでCIを動かそうとしています。これまで、私たちの環境では 2 つのスケジュールされたビルドを実行してきましたが、開発スタッフは CI を機能させたいと考えています。Jenkins Subversion Plugin wiki ページに記載されている手順に従いました。
https://wiki.jenkins-ci.org/display/JENKINS/Subversion+Plugin
これにより、コマンド ラインで問題なく実行されるスクリプトにたどり着きましたが、Subversion で (TortoiseSVN クライアントを使用して) 変更をコミットすると、コミットがハングしたように見え、Jenkins に通知が表示されません。
これが私のスクリプトです:
#!/bin/sh
REPOS="$1"
REV="$2"
UUID=`svnlook uuid $REPOS`
XSLT_FILE=/var/www/svn/codelog.xslt
RSS_FILE=/var/www/html/code_all.rss
MAX_RESULTS=40
/usr/bin/wget \
--auth-no-challenge \
--no-check-certificate \
--header "Content-Type:text/plain;charset=UTF-8" \
--post-data "`svnlook changed --revision $REV $REPOS`" \
--output-document "-" \
--timeout=2 \
https://192.168.100.16/subversion/${UUID}/notifyCommit?rev=$REV
svn log "file://$REPOS" --limit "$MAX_RESULTS" -v --xml | xsltproc "$XSLT_FILE" - > "$RSS_FILE"
RSS フィードは既にスクリプトに含まれていました。それは1年以上働いています。
問題があった場合に備えて、ファイルのアクセス許可も更新しました。
[root@Subversion hooks]# ls post-commit -ao
-rwxrwxr-x 1 apache 530 Jul 17 06:27 post-commit