git - 应该使用 Git 来存储持续集成构建吗?

标签 git build continuous-integration ivy artifactory

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

我目前正在将这些发布到共享目录。我过去曾看到 IVY 用于这种二进制发布。 Git 似乎有点矫枉过正,因为它会膨胀,因为它采用永不删除任何东西的模型。

是否有一种公认的标准化方法来管理/发布这些临时构建 Artifactory ?

最佳答案

我不会将构建 Artifactory 存储在 git 中,而是考虑从持续集成 (CI) 服务器或专用 Artifactory 存储库(例如 artifactory)共享构建 Artifactory 或 nexus .一般来说,我发现最好避免在所有 SCM 中使用大型二进制文件,因为您无法区分它们或进行增量更新,因此您会发现您的 git 存储库增长迅速,因为它会在每次更改时存储完整版本的二进制文件。

大多数持续集成工具(例如 Jenkins)都能够存档最后的 X 构建 Artifactory 或上个月内创建的所有构建 Artifactory 。他们还有一些插件可以帮助支持和自动化升级您认为有用的构建过程(即 Jenkins build promotion )。

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

关于git - 应该使用 Git 来存储持续集成构建吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14489684/

相关文章:

java - 我如何从源代码中获取 "export"这个 Eclipse 插件?

c# - 在构建 .NET 应用程序之前从引用的类库执行方法以进行许可证检查

javascript - 关于将闭包编译器集成到构建流程的建议

Python 构建失败

maven - Gradle Maven 部署程序版本控制

java - 测试连接时出现 Bitbucket 错误 : “javax.net.ssl.SSLHandshakeException: General SSLEngine problem”

Git 推送到 GitHub 失败 - 似乎正在尝试使用 HTTP?

git - 使用GIT部署代码- checkout vs重置-难吗?

linux - 如何在linux中设置一个可以在git上提交的 "variable"?

git reword 没有再次解决 merge 冲突