【问题标题】:Configure Hudson to only execute Build or Post Build actions if changes in SVN are detected如果检测到 SVN 中的更改,则将 Hudson 配置为仅执行构建或构建后操作
【发布时间】:2009-08-07 19:36:53
【问题描述】:

有没有办法将 Hudson 配置为仅在 SVN/CVS 发生更改时执行 Build 或 Post Build 操作

谢谢

【问题讨论】:

    标签: continuous-integration hudson jenkins


    【解决方案1】:

    您可以让 Hudson 轮询 SCM 的更改,并且仅在发现更改时才执行操作。

    轮询 SCM:配置 Hudson 以轮询更改 单片机。

    请注意,这将是一个 CVS 的昂贵操作,因为每个 投票需要 Hudson 扫描 整个工作区并使用 服务器。考虑建立一个 “推”触发器以避免这种开销, 如本文所述document

    您还可以在 SCM 提交后挂钩中添加一些内容,以启动 Hudson 构建。

    触发器远程构建(例如,从 脚本): 如果您愿意,请启用此选项 通过访问来触发新的构建 特殊的预定义 URL(方便 脚本)。

    此功能的一个典型示例 将触发新的构建 源代码控制系统的钩子脚本, 当某人刚刚犯下 更改为存储库,或从 解析源代码控制的脚本 电子邮件通知。

    您需要提供一个 形式的授权令牌 字符串,以便只有那些知道它的人 将能够远程触发这个 项目的构建。

    【讨论】:

    • 使用 Poll SCM 就像你提到的那样对于 SVN 来说是相当昂贵的操作。我更多地考虑手动触发构建,然后只有在 SVN 发生更改时才会执行构建过程。有时对 SVN 有一些小的更改,不需要新的构建
    • 轮询 subversion 存储库非常便宜 - 服务器返回最新的更改列表编号,可以与 Hudson 构建的最后一个版本进行比较。是什么让你觉得它很贵?
    【解决方案2】:

    除非您的构建是针对整个 subversion 存储库,否则它不像查看修订号(如其他地方所述)那么简单。通常,您的项目共享一个 subversion 存储库,并且您正在构建一些子树。全局修订号没有帮助。

    'svn info [url_to_subtree]' 将显示最后更改日期。您可以对其进行解析并确定它是否晚于您的上次构建日期并触发新构建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多