jar*_*orn 8 svn post-commit-hook jenkins
我正试图让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)
要在Jenkins中启用推送模式,您应该在作业的配置页面中启用Poll SCM构建触发器.它告诉Jenkins它应该在SCM发生变化时构建作业.
因为您不必进行任何轮询(从钩子中获取信息),所以可以将该字段留空.
我一直不喜欢 SVN Plugin 页面的编写方式。很容易理解,您需要在 SVN 中设置一个 Post Commit Hook 才能使事情正常进行。你不!
我们的 Jenkins 盒子上有大约 10 个版本。所有这些都链接到 SVN 存储库,并且全部由 SVN 存储库中的更改触发。它们都不依赖于在 SVN 中使用 Post Commit Hook。
为此,我们将构建配置为按计划简单地“轮询 SCM”。“提交”构建使用“*/5 * * * *”的时间表。每 5 分钟进行一次轮询。我们的“每日”构建使用“1 1 * * *”的时间表,因此如果有任何更改,构建将在凌晨 1:01 开始。
| 归档时间: |
|
| 查看次数: |
7557 次 |
| 最近记录: |