【发布时间】:2010-10-02 14:05:14
【问题描述】:
什么是持续集成,它有什么好处?
【问题讨论】:
标签: version-control configuration continuous-integration
什么是持续集成,它有什么好处?
【问题讨论】:
标签: version-control configuration continuous-integration
这是一种确保您的软件开发过程的所有方面都排成一行的做法,以允许每天创建产品的工作版本。它以极限编程的一部分而闻名。
这涉及到构建自动化、自动化测试、日常签入、使用源代码存储库等诸多领域。但最终目标是帮助整个项目按照核心敏捷原则运行,以便您尽早交付并且经常。这反过来又可以帮助您利用来自用户等的反馈。
【讨论】:
This 是迄今为止我读到的最好的解释。
【讨论】:
在最简单的情况下,它只是一种机制,只要签入某个版本控制系统(CVS 等),它就会重新构建您的项目。这可以扩展到包括运行测试,一直到生成 CD 映像、将其安装在 VM 中、安装产品并在其上运行完整测试。
当代码更改尽早破坏系统时,它具有突出显示的简单优势。它不仅可以检测代码中的中断,还可以突出显示中断的原因。这种心理效应对于鼓励在入住前进行良好的测试非常有效!
【讨论】:
+1 以获得 Fowler 页面的链接。
就我个人而言,我只是觉得“很好”知道什么时候没有编译,因为我们没有单一构建的糟糕做法(是的,我们在生产构建上开发;我们很棒)。在我离开之前,我们还没有进入集成测试阶段。
不过,一段时间后,它确实减少了大规模编码更改的数量(与猖獗的“签入并祈祷我的更改不会冲突”相比)。最终,大多数开发人员开始频繁地进行小改动,只是为了从 CC.Net 托盘图标中获得确认。
总体而言,我很欣慰地知道我们可以在必要时立即发送构建版本。如果我们只集成了一些烟雾测试,我认为压力水平会大大降低。
【讨论】:
只是为了刷新。在这一点上,持续集成 (CI) 和持续交付 (CD) 之间存在巨大差异。虽然上面的大多数帖子都描述了 CD,但我将尝试展示 CI 如何扩展现在的 CD 定义。拥有构建包和自动部署新版本应用程序所需的所有工具是 CD 的关键部分。添加测试自动化(基于三级验证:常规健康检查、详细统计和历史条目)和适当的治理,您正在创建一个非常好的 CI。正是因为有了这样一个扩展的定义,才能构建非凡的云工具。想想 muleESB 或 esbeetle.com。尽管只有第二个同时支持 ESB 和 ETL 组件,但 CI 对他们来说都是很自然的。
希望对您有所帮助。
【讨论】: