一尘不染

SVN提交后和Jenkins遇到麻烦

jenkins

我正在尝试让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

阅读 271

收藏
2020-07-25

共1个答案

一尘不染

我从不喜欢SVN插件页面的编写方式。说起来很容易理解,您需要在SVN中设置一个Post Commit Hook才能使工作正常。你不!

我们的詹金斯盒子上有大约10个版本。它们都链接到SVN信息库,并且都是由SVN信息库中的更改触发的。它们都不依赖于在SVN中使用后期提交挂钩。

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

2020-07-25