【问题标题】:Which part of HUDSON_HOME should I put under source control?我应该将 HUDSON_HOME 的哪个部分置于源代码控制之下?
【发布时间】:2010-12-09 01:18:57
【问题描述】:

我想用 subversion 管理 Hudson 的配置文件以进行备份。 The Hudson Wiki 列出 $HUDSON_HOME 的目录结构如下:

HUDSON_HOME
 +- config.xml     (hudson root configuration)
 +- *.xml          (other site-wide configuration files)
 +- fingerprints   (stores fingerprint records)
 +- plugins        (stores plugins)
 +- jobs
     +- [JOBNAME]      (sub directory for each job)
         +- config.xml     (job configuration file)
         +- workspace      (working directory for the version control system)
         +- latest         (symbolic link to the last successful build)
         +- builds
             +- [BUILD_ID]     (for each build)
                 +- build.xml      (build result summary)
                 +- log            (log file)
                 +- changelog.xml  (change log)

显然,jobs/[JOBNAME]/builds 不应该进入源代码控制,但 config.xml 是一个不错的选择。插件和指纹不太明显。

您如何管理 Hudson 配置?

【问题讨论】:

标签: version-control continuous-integration hudson


【解决方案1】:

SCM 可能不是备份 Hudson 工作区的最佳工具——它就像使用 Subversion 来存储游戏的首选项或 Web 应用程序的数据库表的内容一样。除此之外,由于以下原因,它似乎没有必要:

  • 配置文件不会(或不应)频繁更改(如代码),因此每晚备份就足够了。
  • 当您通过 GUI 进行更改时,必须向系统发送一些内容并执行svn commit。由于这可能是手动步骤,因此存在人为错误的空间。
  • 您可能永远不需要对您的配置更改进行差异化,而且您可能只是提取并查看适当的备份(见下文)。

总而言之,使用 Subversion 来完成这项任务似乎有点笨拙。对于备份,我建议只设置一个执行tar cvzf $HUDSON_HOME 的 cron 作业。您可以选择省略构建目录,但如果您有足够的磁盘空间,这似乎有点不必要。

编辑: 关于这个和oeuftete's answer 之间的区别,我的回答只是来自我使用 Hudson 的经验。他/她的回答肯定提供了不同的视角,这很好。我绝对同意,因为每种情况都是不同的,可能需要不同的手段来达到目的。

【讨论】:

    【解决方案2】:

    我确实使用 SCM 来管理我的 Hudson 配置。我为每个作业保留顶级 config.xml 和 config.xml。我有一个小脚本,用于从 Hudson 获取配置并根据需要提交/添加/删除它们(以及其他一些使管理配置更容易的花里胡哨)。

    关于 Rob Hruska 的观点,对于我的特定设置:

    • 配置确实经常更改(尤其是通知)
    • (参见上面的更新脚本)
    • 我一直在区分事物。我们有不止一位管理员可以更新配置,这些差异很有用

    话虽如此,但每种情况都是不同的。我为配置所做的管理不是(也不是)免费提供的。每晚压缩所有内容的 cron 作业肯定更便宜,也可能就足够了。

    【讨论】:

    • 同意“每个情况都不同”。我认为你和我在我们的环境如何证明我们正在做的备份方面提供了相反的两端;很高兴有几个观点。
    • +1 表示 Rob 指出 SCM 可能不是正确的解决方案,+1 表示备份每个 config.xml 就足够了。我选择了 oueftete,因为它直接回答了我的问题的标题。我会从你们两个角度重新考虑我的备份计划。非常感谢。
    【解决方案3】:

    我找到了一本为 Hudson 设置 SVN 备份的好手册: http://javaadventure.blogspot.com/2010/07/keeping-hudson-configuration-and-data.html

    我已经根据自己的需要对其进行了调整,但是您应该从 Hudson 主目录备份的内容是:

    • 每个作业的config.xml (jobs/*/config.xml)
    • 用户目录中的所有内容
    • 您已安装的插件列表

    该链接还具有一些额外的 SVN 优点,例如删除不存在的作业配置等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      • 1970-01-01
      • 1970-01-01
      • 2014-03-07
      • 2017-07-15
      • 2020-11-22
      • 2010-09-21
      相关资源
      最近更新 更多