我正试图让CI与詹金斯合作.到目前为止,我们一直在我们的环境中执行两个预定的构建,但我们的开发人员希望CI能够正常运行.我按照Jenkins Subversion插件维基页面中的说明操作:
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"
Run Code Online (Sandbox Code Playgroud)
RSS源已经在脚本中.这已经工作了一年多.
我已经更新了文件权限,以防出现问题:
[root@Subversion hooks]# ls post-commit -ao
-rwxrwxr-x 1 apache 530 Jul 17 06:27 post-commit
Run Code Online (Sandbox Code Playgroud)