为Hudson中的每个构建维护多个工作区

时间:2010-08-26 06:24:00

标签: hudson

是否可以为Hudson中的每个构建维护多个工作区?假设我想保留最后5个版本,是否可以拥有五个相应的工作区文件夹?目前,无论何时安排新构建,它都会覆盖工作区。

4 个答案:

答案 0 :(得分:0)

现在,我们的想法是重用工作区。

它基于所使用的SCM(SVN工作区或Git工作区或ClearCase快照或动态视图或......),并且在这些SCM插件中没有一个我看到构建新工作区或保存的选项(复制)每次工作的旧版本。

一个(糟糕的)解决方案是:

  • 复制作业四次,导致修改5个作业以指定5个不同的工作区(基于相同的SCM配置,这意味着这5个工作区在每个工作区中选择相同的版本),
  • 让他们安排一个接一个地跑。

答案 1 :(得分:0)

据我所知,没有内置的方法可以做到这一点。

你有几个选择:

  • 作为构建步骤之一,您可以tar(或压缩)工作区并将其记录为构建工件。
  • 为每个成功构建生成一个标记(例如使用Subversion Tagging Plugin

答案 2 :(得分:0)

虽然不理想,但您可以使用Backup Plugin

备份插件允许您备份工作区。因此,您可以在每次构建后运行该插件,它将归档工作区。

同样,不理想,但如果这是必须的要求,并且如果它与您使用Hudson的方式一起工作,那么它可以工作。

答案 3 :(得分:0)

根据您的目的,您可以选择一些选项。

如果您需要最后五个工作区用于其他作业,则可以使用克隆工作区SCM link text插件。由于我从未使用它,我不知道您是否可以稍后手动(通过UI)访问存档的工作区。

另一个值得尝试的选择是使用归档选项并归档整个工作区(我认为归档选项的过滤器设置为** / *)。您可以从每个作业运行中以压缩版本下载工作区。此解决方案的优点在于,当您删除特定作业运行时(手动或通过作业设置删除旧版本),工件将被清除。

当然,您也可以手动执行此操作并运行副本作为构建的最后一步。您将需要五个目录(您可以将它们命名为1到5)。首先删除最旧的一个并重命名其他的(4-> 5,3-> 4,...)。最后一步是将工作区复制到包含最新副本的目录(在我们的示例1中)。这将要求您维护自己的存档作业。因此,我更喜欢上述选项之一。