当前位置: 首页 > 面试题库 >

SVN提交后和Jenkins遇到麻烦

庄星汉
2023-03-14
问题内容

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



 类似资料:
  • 问题内容: 当它成功时,我正在尝试在Jenkins CI中进行构建后提交。 有没有办法做到这一点? 我的问题是,当我构建它时,我需要在工作区中生成一些dll提交给svn。 问题答案: 这取决于您用来构建源代码的构建技术(例如Ant,Maven,MSBuild或FianlBuilder)。要将生成结果检入到svn中,应在生成脚本的末尾添加一些新步骤。这一步只会将您的构建结果添加到svn中。例如,您的

  • 问题内容: 我在Subversion存储库中有一个保存的项目,并使用Jenkins进行编译。当我运行构建时,Jenkins将项目拉入工作区目录。我需要将一个更改的文件从Jenkins工作区提交到Subversion。我该怎么做?? 感谢您的回答… 问题答案: 您能否提供更多细节?确切地说,此文件是什么?为什么要在Jenkins构建中将其提交?您正在构建什么(Java?C ++ ?. NET?),以

  • 问题内容: 这不是让我输入我的名字,但是年龄确实可以。我知道我可以更改语句的顺序,但是还有另一种方法可以做到吗? 问题答案: 您的问题是,下一个int不考虑输入在您的姓名部分中的换行符。因此,名称返回为空白。 您可以通过两种方式更改代码: 要么 我个人喜欢第二种方式。

  • 问题内容: -edit2-3小时后,仍然有相同的问题。我正在使用noinstall存档软件包。-编辑-也许有人可以告诉我一种检查表是否存在的更好方法? 我的函数库中有一个函数来检查是否存在一个表,该表过去我曾问过要怎么做。 我删除了数据库并再次创建了它。我的代码未正确创建表。调试后,我决定编写以下内容。 很奇怪… mydb被删除并再次创建(我写了,应该消失了吗?)。让我们找出存在的东西 我不仅不知

  • 问题内容: 我在Linux上运行SVN。我希望一旦提交就运行自动部署。根据我的搜索,提交后svn似乎可以解决问题。但是我在SVN安装中找不到SVN提交后。所以我想知道这是否是单独安装?我可以下载并安装任何SVN提交后挂钩吗? 问题答案: 这不是单独的安装。在您的存储库目录中,有一个“挂钩”目录。您可以找到post-commit.tmpl,只需修改文件并将其重命名为可执行文件即可。

  • 问题内容: 有没有办法获得最后的提交消息而无需访问存储库?尝试连接到仓库。 编辑:我有凭据设置,并使用它们来签出源。 我要实现的目标是让Jenkins根据提交消息触发另一个作业,即是否包含字符串“ #build”启动作业X。我的尝试是在Shell Build Step中解析它并执行一个作业取决于结果。但是由于我没有匿名访问该存储库的权限,也不想将凭据嵌入到shell脚本中,所以我不知道如何实现此目