【问题标题】:What backend does Jenkins (Hudson) use for archiving build artifacts?Jenkins (Hudson) 使用什么后端来归档构建工件?
【发布时间】:2026-02-04 19:35:01
【问题描述】:

我读过关于使用 SVN 存储构建工件(大型二进制文件)的disadvantages(尤其是this one)。 Hudson was suggested 作为替代方案。

Hudson 如何处理这些文件?

编辑:我的项目不是基于 Java 的。

【问题讨论】:

    标签: continuous-integration hudson artifacts jenkins binaries


    【解决方案1】:

    Hudson 可以创建/保存构建工件的存档,并提供一个很好的浏览器视图来检查它们。

    您需要在作业定义中启用Archive the Artifacts

    【讨论】:

      【解决方案2】:

      Hudson 基本上是使用平面文件存储。您可以在 Hudson 的 jobs/builds/ 文件夹中找到这些文件。我不确定我会说“使用 Hudson 作为将文件签入到源代码管理的替代方法”,但如果它提供了一些东西作为替代方法是一个不错的主意:

      1. 权威存放地
      2. 版本化的二进制文件访问控制
      3. 防篡改校验和
      4. 发布元数据(环境信息;审批级别)
      5. 保留期

      我不确定 Hudson 在这些分数上的得分如何,但我认为它至少做到了其中的一部分。 SVN 作为那里的解决方案也不是很糟糕,但在保留期方面确实很困难(旧版本往往会疯狂地占用磁盘空间)并且对于大型二进制文件的优化不是很好 - 大多数 SCM 系统都针对小型文本文件进行了优化。

      我从这个演示文稿中窃取了上面的列表:http://www.anthillpro.com/html/resources/webinars/Role_of_Binary_repositories_in_Software_Configuration_Management.html(需要注册)

      【讨论】:

        【解决方案3】:

        我们使用 Jenkins 进行构建,但我们也存储构建中的工件。就像 Eric 上面所说的,Hudson/Jenkins 使用平面文件存储来存储艺术品。它是根据构建进行组织的。

        我在使用过程中注意到的一些事情(针对 Eric 关于二进制文件源控制替代方案的问题):

        • 每个构建都存储它自己的工件,因此您确实有各种版本控制。
        • 您可以在归档时使用指纹选项。这将使您能够区分版本并检查损坏情况。
        • 保留期限完全由您决定。我们永远保留文物。

        仅供参考,我们的项目也不是 Java(它们是 C/C++),我们的工件是 tar.gz/zip 文件和文档。

        它可能是也可能不是存储二进制文件的最佳方式,但只要您有定期备份(在我们的例子中是每周一次)并且您的磁盘具有容错能力,它绝对是不错的。 p>

        【讨论】:

          最近更新 更多