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

Syn*_*ome 8 git continuous-integration build ivy artifactory

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

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

管理/发布这些瞬态构建工件是否有一种商定的标准化方法?

pip*_*ull 11

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

大多数持续集成工具(如Jenkins)将能够存档上一个月内制作的最后X个构建工件或所有构建工件.他们还有插件,可以帮助支持和自动化促进构建的过程,你发现它们很有用(即Jenkins构建促销).

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

  • +1 Nexus,Artifactory或Archiva等存储库管理器旨在解决此问题.看看他们的功能.我们使用Nexus专业版,使我们能够"暂存"我们的版本并创建认证工作流程,其中DEV创建构建工件,随后在访问生产存储库之前由Test和QA批准. (2认同)