我正试图让 CI 与 Jenkins 合作。迄今为止,我们已经在我们的环境中执行了两次预定的构建,但我们的开发人员希望让 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 提要已经在脚本中。这已经工作了一年多。
我也更新了文件权限,以防出现问题:
[root@Subversion hooks]# ls post-commit -ao
-rwxrwxr-x 1 apache 530 Jul 17 06:27 post-commit