【问题标题】:Hudson not building projects when SVN post-commit trigger received收到 SVN 提交后触发器时,Hudson 未构建项目
【发布时间】:2013-02-25 23:31:46
【问题描述】:

我正在尝试设置 Hudson 持续集成服务器,以便任何 SVN 提交都会触发新的构建。我在 stackoverflow 上看到了很多关于配置 SVN 服务器的问题和答案,但在配置 Hudson 方面却不多。

我在 SVN 服务器上添加了一个提交后挂钩,它将在提交时联系 Hudson。我正在使用此处描述的提交后挂钩:http://wiki.hudson-ci.org/display/HUDSON/Subversion+Plugin

但是在 SVN 提交后不会触发构建。我从上面的提交后挂钩脚本中获得了 UUID 值,并将我自己的 HTTP POST 请求发送到 Hudson 服务器:

http://<server>/hudson/subversion/<uuid>/notifyCommit?rev=<rev>

Hudson 日志随后显示以下内容:

WARNING: No subversion jobs using SCM polling

所以我的 HTTP POST 请求正在到达 Hudson,但 Hudson 抱怨没有配置任何作业来处理此通知。

根据上面的链接,我需要 (a) 设置 SCM 轮询(任何时间表都足够)和 (b) 允许匿名读取访问和 (c) 禁用跨站点漏洞检查。

因此,我将我的一项 Hudson 作业配置为使用 SCM 轮询进行夜间构建,并验证已禁用跨站点漏洞利用检查。我还禁用了“启用安全性”选项,这意味着(我假设)允许匿名读取访问。

然后我再次发送代表 SVN 提交通知的 HTTP POST 请求。这次系统日志中没有消息,这意味着没有 SCM 轮询的作业没有警告。但是仍然没有构建。

在我看来,Hudson 可以通过 HTTP POST 请求识别构建触发器,并且知道 SCM 轮询的作业可以接受构建触发器,但无法触发构建。

我想知道我需要做些什么来解决这个问题。我是否需要启用安全性并明确允许匿名读取访问?还是启用“任何人都可以做任何事”授权选项?我是否需要以某种方式更改 SCM 轮询(当前设置为“0 2 * * *”)?

任何帮助表示赞赏。

编辑:我在 Tomcat 中运行 Hudson,并且 Tomcat 在 Windows XP 上作为服务启动。

【问题讨论】:

    标签: continuous-integration hudson build-triggers


    【解决方案1】:

    在 v3.0.0(v2.2.1 及更早版本)之前,Hudson 中的轮询功能有两个含义:

    1) 如果您选择轮询并设置计划,该作业将运行,并在指定时间查找任何更改。该作业将忽略来自 SCM 的任何提交后挂钩,就像构建根本没有轮询的作业一样

    2) 启用轮询但保留实际轮询字段空白。这允许 Hudson 进行“被动”轮询:即,它处于空闲状态,直到提交后触发器到达 Hudson,并且只有在那个时候才会运行构建作业。

    我的建议是像您一样启用轮询,但取消计划。让社区知道这是否能解决您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      相关资源
      最近更新 更多