我想用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)
显然,job / [JOBNAME] / builds不应该进入源代码控制,但config.xml是一个很好的候选者。插件和指纹不太明显。
您如何管理您的Hudson配置?
答案 0 :(得分:7)
SCM可能不是备份Hudson工作区的最佳工具 - 就像使用Subversion存储游戏的首选项或Web应用程序的数据库表的内容一样。除此之外,由于以下原因,似乎没有必要:
svn commit
。由于这可能是一个手动步骤,因此会留下人为错误的空间。总而言之,将Subversion用于此任务似乎有点笨拙。对于备份,我建议只设置执行tar cvzf $HUDSON_HOME
的cron作业。您可以选择省略构建目录,但如果您有足够的磁盘空间,这似乎有点不必要。
编辑: 关于这和oeuftete's answer之间的区别,我的答案仅仅来自于我如何使用Hudson的经验。他/她的回答肯定提供了一个不同的视角,这很好。我绝对同意这一点,因为每种情况都不同,可能需要不同的方法来满足目的。
答案 1 :(得分:7)
我使用SCM来管理我的Hudson配置。我保留每个作业的顶级config.xml和config.xml。我有一个小脚本用于从Hudson获取配置并根据需要提交/添加/删除它们(以及其他一些使得管理配置更容易的花哨和口哨)。
Re Rob Hruska的观点,对于我的特殊设置:
所有这一切,每种情况都不同。我为配置所做的管理没有(也没有)免费提供。每晚拉上一切的cron工作肯定更便宜,也可能就足够了。
答案 2 :(得分:2)
我找到了一个很好的食谱来为Hudson设置SVN备份: http://javaadventure.blogspot.com/2010/07/keeping-hudson-configuration-and-data.html
我已根据自己的需要对其进行了调整,但您应该从Hudson主目录中备份的内容是:
链接还有一些额外的SVN优点,比如删除不存在的作业配置等。