我正在尝试让CI与Jenkins合作。迄今为止,我们已经在环境中执行了两个计划的构建,但是我们的开发人员希望让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
我从不喜欢SVN插件页面的编写方式。说起来很容易理解,您需要在SVN中设置一个Post Commit Hook才能使工作正常。你不!
我们的詹金斯盒子上有大约10个版本。它们都链接到SVN信息库,并且都是由SVN信息库中的更改触发的。它们都不依赖于在SVN中使用后期提交挂钩。
为此,我们已将构建配置为仅按计划进行“轮询SCM”。“提交”构建使用的时间表为“ * / 5 * * ”。这每5分钟轮询一次。我们的“每日”构建使用时间表“ 1 1 * ”,这样,如果有任何更改,构建将在上午1:01开始。