我正在尝试使用Jenkins实现CI。到目前为止,我们在环境中已经执行了两个定期构建,但是我们的开发人员希望能够让CI正常工作。我按照Jenkins Subversion插件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源已经包含在脚本中。这已经运行了一年多。
我还更新了文件权限,以防这是问题所在:
[root@Subversion hooks]# ls post-commit -ao
-rwxrwxr-x 1 apache 530 Jul 17 06:27 post-commit