首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CI平台与简单的git挂钩

CI平台与简单的git挂钩
EN

DevOps用户
提问于 2019-06-22 10:02:29
回答 1查看 1.8K关注 0票数 4

这里的新手,很抱歉这可能是个愚蠢的问题,但是,CI平台的意义是什么?在我看来,仅仅通过使用git挂钩,我就可以在提交之前自动运行所有的单元测试,并在需要时阻止提交。如果我需要在生产克隆环境中运行测试(为了论证起见,我不需要),那么我应该能够通过旋转一个克隆服务器并使用git服务器钩子no来完成这个任务。只是我读到的每一篇关于CI的文章似乎都暗示着CI平台是必要的。但到目前为止还没有说出原因。除非我使用Travis/ CI /Jenkins或其他什么,否则我不能获得CI的哪些重要组成部分?

EN

回答 1

DevOps用户

回答已采纳

发布于 2019-06-23 04:08:22

git钩子方法可能对单独的开发人员很好。但是,当多个开发人员在同一个项目上工作时,它的工作效果就不太好了,特别是在大型项目中。

几个原因:

  • git钩子是存储库的本地副本,没有检查所有开发人员的一致性。任何人都可以根据需要“调整”他们的钩子脚本,甚至忘记设置它们(例如,在克隆git存储库时不会自动安装它们)。对于所有更改,CI平台将始终运行相同的脚本。
  • 执行的验证通常是在开发人员的计算机上完成的,因此您可以直接进入典型的“它为我工作”的情况。一致性: CI平台将在相同的上下文中,在比开发人员的环境更容易保持一致性的资源库上执行相同的验证。
  • 在更改集实际集成到分支之前,开发人员执行的验证基本上是在存储库分支的本地快照上单独执行的--它们没有考虑到其他开发人员在任何时候都可能发生的更改。以这种方式获得的结果可能会产生明显的误导,参见怎样才能成功地预先验证更改,从而导致本应被捕获的回归?。CI平台侧重于存储库分支本身,检查特定变更集在该分支上的执行情况,同时考虑到所有其他变更集,反映实际的分支集成状态。
  • (在较大的项目中) CI工具可以执行对单个开发人员不实用的验证。例如,多平台构建持久的时间,并要求高性能的构建机器,远远高于典型的开发人员笔记本电脑。由CI平台执行的集中式验证可能比由每个单独的开发人员执行时更节省资源。

附带注意:并不是所有的项目都受益于开发人员按需提供类似产品的环境/克隆服务器的能力;)但即使可能,上述大多数原因仍然存在。

票数 3
EN
页面原文内容由DevOps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://devops.stackexchange.com/questions/8447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档