【问题标题】:Maintaining multiple workspaces for each build in Hudson为 Hudson 中的每个构建维护多个工作区
【发布时间】:2010-08-26 06:24:00
【问题描述】:

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

【问题讨论】:

    标签: hudson


    【解决方案1】:

    现在的想法是重用工作空间。

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

    一个(不好的)解决方案是:

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

    【讨论】:

      【解决方案2】:

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

      您确实有几个选择:

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          【解决方案4】:

          根据您想做什么,您有几个选择。

          如果你需要最后五个工作区来做另一个工作,你可以使用克隆工作区 SCMlink text 插件。由于我从未使用过,不知道以后是否可以手动(通过 UI)访问存档的工作区。

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-10-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-07-10
            相关资源
            最近更新 更多