Git应该用于存储持续集成构建吗?

时间:2013-01-23 21:27:16

标签: git build continuous-integration ivy artifactory

在一个可以每天创建多个版本(发布候选软件包)但每月只有一个版本升级到生产的环境中,我认为将每个版本存储在Git中都会浪费但是应该有一个短期的位置,这是最后几个版本发布。

我目前正在将这些发布到共享目录。我看到IVY过去常用于这种二进制发布。 Git看起来有点矫枉过正,因为它的模型永远不会删除任何内容,因为它会膨胀。

是否存在管理/发布这些瞬态构建工件的商定标准方法?

1 个答案:

答案 0 :(得分:10)

我不会将构建工件存储在git中,而是查看从Continuos Integration(CI)服务器或专用工件存储库(例如artifactorynexus)共享构建工件。一般来说,我发现最好避免在所有SCM中使用大型二进制文件,因为你无法对它们进行区分或进行增量更新,因此你会发现你的git repo会迅速增长,因为它会在每次更改时存储完整版本的二进制文件。

大多数持续集成工具(例如Jenkins)都能够存档上一个月内制作的最后一个X构建工件或所有构建工件。它们还有插件,可以帮助支持和自动化促进构建的过程,这些过程对您有用(即Jenkins build promotion)。

通过使用工件存储库或CI服务器来管理构建工件,您通常也可以通过API访问工件,这在您想要自动化部署过程时非常有用,例如您可以调用“getLastSuccesfullBuild”和'getLastPromotedBuild()'等。