什么是工件存储库?


Answers:


32

在开发期间,您会生成大量不同的工件。这些可能包括:

  • 源代码
  • 编译后的应用程序
  • 可部署的程序包
  • 文献资料

可能还有其他人

尽管您可以使用源代码控制系统来存储所有文件,但通常效率非常低下,因为源代码控制系统通常被设计为处理基于文本的文件,而不是二进制文件。如果大多数发行版都是基于文本的,并且您不必存储大量二进制数据,则可以将它们用作一种简单的存储机制。

但是,工件存储库旨在存储各种文件,包括二进制文件。这包括从压缩源代码,生成结果到docker映像之类的所有内容。而且,它们通常不仅存储这些工件,而且还使用各种附加功能来帮助管理它们,例如:

  • 版本支持:正确存储一些元数据,例如构建每个工件的时间,版本号,存储哈希值等。
  • 保留:确保仅保留重要的工件,并根据可以设置的各种条件自动删除仅是快照/不再需要的工件等。
  • 访问控制:设置谁可以发布以及谁可以下载各种工件
  • 提升:提升神器的能力。例如,您可以在编码器附近的服务器上具有较短保留期的快照工件,而在实时服务器附近具有单独的存储库,其中仅显示被认为可部署的工件。这还包括对各种版本通道的支持,以及在它们之间移动构件(例如将特定版本从beta升级到稳定版)。
  • 充当工件的本机存储库。意味着您可以将其用作Maven,rubygems,docker等的主要存储库。这也可以包括从官方存储库缓存工件的信息。

可能值得在Versionning支持的基础上增加“通道”功能,具有使某些计算机在通道“ develop”中针对最新版本,而使生产机在“ stable”通道中针对特定版本的能力。
Tensibai

@ Pierre.Vriens添加了一些小意见,但也许也可以在单独的问题中解决
SztupY

谢谢,但以防万一,是您进一步提出我的补充评论的机会……
Pierre.Vriens

在此类存储库中还跟踪配置文件或固定装置是否有意义?
tutuca

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.