SVN post-commit和Jenkins的问题

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)

Yos*_*ssi 5

要在Jenkins中启用推送模式,您应该在作业的配置页面中启用Poll SCM构建触发器.它告诉Jenkins它应该在SCM发生变化时构建作业.

因为您不必进行任何轮询(从钩子中获取信息),所以可以将该字段留空.


jwe*_*rny 1

我一直不喜欢 SVN Plugin 页面的编写方式。很容易理解,您需要在 SVN 中设置一个 Post Commit Hook 才能使事情正常进行。你不!

我们的 Jenkins 盒子上有大约 10 个版本。所有这些都链接到 SVN 存储库,并且全部由 SVN 存储库中的更改触发。它们都不依赖于在 SVN 中使用 Post Commit Hook。

为此,我们将构建配置为按计划简单地“轮询 SCM”。“提交”构建使用“*/5 * * * *”的时间表。每 5 分钟进行一次轮询。我们的“每日”构建使用“1 1 * * *”的时间表,因此如果有任何更改,构建将在凌晨 1:01 开始。

  • 我明白你的意思,_几乎_准备好进入这个选项,但仍然想看看我是否能让推送通知起作用。 (2认同)