CI 需要 CI 服务器吗
持续集成是否需要 CI 服务器?
Is a CI server required for continous integration?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
持续集成是否需要 CI 服务器?
Is a CI server required for continous integration?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
为了促进持续集成,您需要自动化构建、分发和部署流程。 这些步骤中的每一步都可以在没有任何专门的 CI 服务器的情况下实现。 协调这些活动可以通过文件通知和其他低级机制来完成; 然而,协调这些步骤的数据库驱动后端(CI 服务器)极大地增强了系统的可靠性、可扩展性和可维护性。
In order to facilitate continous integration you need to automate the build, distribution, and deploy processes. Each of these steps is possible without any specialized CI-Server. Coordinating these activities can be done through file notifications and other low level mechanisms; however, a database driven backend (a CI-Server) coordinating these steps greatly enhances the reliability, scalability, and maintainability of your systems.
您不需要专用服务器,但某种构建机器是非常宝贵的,否则就没有一个始终可以构建和测试代码的中心位置。 尽管您可以使用开发人员计算机来模拟这种影响,但存在与该计算机上正在更改的代码重叠的风险。
顺便说一句,我使用 Hudson,它的重量非常轻 - 不需要太多就可以运行。
You don't need a dedicated server, but a build machine of some kind is invaluable, otherwise there is no single central place where the code is always being built and tested. Although you can mimic this affect using a developer machine, there's the risk of overlap with the code that is being changed on that machine.
BTW I use Hudson, which is pretty light weight - doesn't need much to get it going.
使用专用机器非常重要,这样您才能获得独立验证,而不会出现损坏。
对于小型项目,它可能是一台非常基本的机器,因此不要让硬件成本让您失望。 您的壁橱里可能有一台足够好的旧机器。
您还可以通过使用虚拟机来避免专用硬件。 最好的办法是找到一台正在做其他事情但负载不足的服务器,并将虚拟机放在上面。
It's important to use a dedicated machine so that you get independent verification, without corruption.
For small projects, it can be a pretty basic machine, so don't let hardware costs get you down. You probably have an old machine in a closet that is good enough.
You can also avoid dedicated hardware by using a virtual machine. Best bet is to find a server that is doing something else but is underloaded, and put the VM on it.
在我听说“持续集成”这个术语之前(这是在 2002 年或 2003 年),我编写了一个连接到 cvs 的夜间构建脚本,获取了主项目和五个较小的子项目的干净副本,构建了所有通过 ant 生成 jar 文件,然后通过使用 tomcat ant 任务的第二个 ant 脚本构建并重新部署 WAR 文件。
它在晚上 7 点通过 cron 运行,并发送带有一堆附加输出文件的电子邮件。 我们在项目的整个 7 个月中使用了它,并在接下来的 20 个月的维护和改进中一直使用它。
它工作得很好,但我更喜欢 hudson,而不是 bash 脚本、cron 和 ant。
Before I ever heard the term "continuous-integration" (This was back in 2002 or 2003) I wrote a nightly build script that connected to cvs, grabbed a clean copy of the main project and the five smaller sub-projects, built all the jars via ant then built and redeployed a WAR file via a second ant script that used the tomcat ant tasks.
It ran via cron at 7pm and sent email with a bunch of attached output files. We used it for the entire 7 months of the project and it stayed in use for the next 20 months of maintenance and improvements.
It worked fine but I would prefer hudson over bash scripts, cron and ant.
如果项目中有多个开发人员,则确实需要一台单独的机器。
如果您使用 .NET 技术堆栈,这里有一些提示:
A separate machine is really necessary if you have more than one developer on the project.
If you're using the .NET technology stack here's some pointers: